private void CreateAdministeredConnectionFactory()

in src/main/csharp/ConnectionFactory.cs [154:192]


		private void CreateAdministeredConnectionFactory(
			Uri factoryUri, StringDictionary properties)
		{
			// The initial context URL is the non-query part of the factory URI
			string icUrl = factoryUri.OriginalString.Substring(0,
				factoryUri.OriginalString.IndexOf('?'));

			// Extract other InitialContext property values from URI
			string icPrefix = "ic.";
			StringDictionary icProperties = URISupport.ExtractProperties(
				properties, icPrefix);

			// Initialize environment Hashtable
			Hashtable environment = new Hashtable();
			environment[XMSC.IC_URL] = icUrl;
			foreach(DictionaryEntry de in icProperties)
			{
				string key = ((string)de.Key).Substring(icPrefix.Length);
				//TODO: convert "environment." attribute types.
				environment[key] = de.Value;
			}

			// Create an InitialContext
			InitialContext ic = new InitialContext(environment);

			// Extract administered object name
			string objectNameKey = "object.Name";
			if(!properties.ContainsKey(objectNameKey))
			{
				throw new NMSException(string.Format(
					"URI attribute {0} must be specified.", objectNameKey));
			}
            string objectName = properties[objectNameKey];
			properties.Remove(objectNameKey);

			// Lookup for object
			this.xmsConnectionFactory =
				(IBM.XMS.IConnectionFactory)ic.Lookup(objectName);
		}