/// <summary> /// Initializes the namespace mappings and updates the proxy configuration. /// </summary> /// <param name="session">The session.</param> /// <param name="configuration">The configuration.</param> public virtual void Initialize(Session session, ComProxyConfiguration configuration) { lock (m_lock) { m_typeTable = session.TypeTree; // index namspace uris. if (configuration.NamespaceUris == null) { configuration.NamespaceUris = new StringCollection(); } m_namespaceUris = new StringTableMapping(); m_namespaceUris.Initialize(configuration.NamespaceUris, session.NamespaceUris); // index server uris. if (configuration.ServerUris == null) { configuration.ServerUris = new StringCollection(); } m_serverUris = new StringTableMapping(); m_serverUris.Initialize(configuration.ServerUris, session.ServerUris); // create message context. ServiceMessageContext context = new ServiceMessageContext(); context.MaxArrayLength = session.MessageContext.MaxArrayLength; context.MaxByteStringLength = session.MessageContext.MaxByteStringLength; context.MaxMessageSize = session.MessageContext.MaxMessageSize; context.MaxStringLength = session.MessageContext.MaxStringLength; context.Factory = session.MessageContext.Factory; context.NamespaceUris = new NamespaceTable(); context.ServerUris = new StringTable(); // copy namespace uris. context.NamespaceUris.Append(session.NamespaceUris.GetString(1)); for (int ii = 0; ii < configuration.NamespaceUris.Count; ii++) { context.NamespaceUris.Append(configuration.NamespaceUris[ii]); } // copy server uris. context.ServerUris.Append(session.ServerUris.GetString(0)); for (int ii = 0; ii < configuration.ServerUris.Count; ii++) { context.ServerUris.Append(configuration.ServerUris[ii]); } m_localMessageContext = context; // index mapping sets by the name assigned. if (configuration.MappingSets != null) { m_mappingSets = new Dictionary <string, NodeIdMappingSet>(); for (int ii = 0; ii < configuration.MappingSets.Count; ii++) { UpdateMappingSet(configuration.MappingSets[ii]); } } } }
/// <summary> /// Initializes the namespace mappings and updates the proxy configuration. /// </summary> /// <param name="session">The session.</param> /// <param name="configuration">The configuration.</param> public virtual void Initialize(Session session, ComProxyConfiguration configuration) { lock (m_lock) { m_typeTable = session.TypeTree; // index namspace uris. if (configuration.NamespaceUris == null) { configuration.NamespaceUris = new StringCollection(); } m_namespaceUris = new StringTableMapping(); m_namespaceUris.Initialize(configuration.NamespaceUris, session.NamespaceUris); // index server uris. if (configuration.ServerUris == null) { configuration.ServerUris = new StringCollection(); } m_serverUris = new StringTableMapping(); m_serverUris.Initialize(configuration.ServerUris, session.ServerUris); // create message context. ServiceMessageContext context = new ServiceMessageContext(); context.MaxArrayLength = session.MessageContext.MaxArrayLength; context.MaxByteStringLength = session.MessageContext.MaxByteStringLength; context.MaxMessageSize = session.MessageContext.MaxMessageSize; context.MaxStringLength = session.MessageContext.MaxStringLength; context.Factory = session.MessageContext.Factory; context.NamespaceUris = new NamespaceTable(); context.ServerUris = new StringTable(); // copy namespace uris. context.NamespaceUris.Append(session.NamespaceUris.GetString(1)); for (int ii = 0; ii < configuration.NamespaceUris.Count; ii++) { context.NamespaceUris.Append(configuration.NamespaceUris[ii]); } // copy server uris. context.ServerUris.Append(session.ServerUris.GetString(0)); for (int ii = 0; ii < configuration.ServerUris.Count; ii++) { context.ServerUris.Append(configuration.ServerUris[ii]); } m_localMessageContext = context; // index mapping sets by the name assigned. if (configuration.MappingSets != null) { m_mappingSets = new Dictionary<string, NodeIdMappingSet>(); for (int ii = 0; ii < configuration.MappingSets.Count; ii++) { UpdateMappingSet(configuration.MappingSets[ii]); } } } }