AddServerWellKnownEntry() private method

private AddServerWellKnownEntry ( String typeName, String assemName, ArrayList contextAttributes, String objURI, WellKnownObjectMode objMode ) : ServerWellKnownEntry
typeName String
assemName String
contextAttributes System.Collections.ArrayList
objURI String
objMode WellKnownObjectMode
return ServerWellKnownEntry
Esempio n. 1
0
        } // ProcessInteropNode


        // appears under "application/service"
        private static void ProcessServiceWellKnownNode(ConfigNode node, RemotingXmlConfigFileData configData)
        {
            String typeName = null;
            String assemName = null;
            ArrayList contextAttributes = new ArrayList();
            
            String objectURI = null;
            
            WellKnownObjectMode objectMode = WellKnownObjectMode.Singleton;
            bool objectModeFound = false;

            // examine attributes
            foreach (DictionaryEntry entry in node.Attributes)
            {
                String key = entry.Key.ToString();
                switch (key)
                {
                case "displayName": break; // displayName is ignored (used by config utility for labelling the application)
                
                case "mode":
                {
                    String value = (String)entry.Value;
                    objectModeFound = true;
                    if (String.CompareOrdinal(value, "Singleton") == 0)
                        objectMode = WellKnownObjectMode.Singleton;
                    else
                    if (String.CompareOrdinal(value, "SingleCall") == 0)
                        objectMode = WellKnownObjectMode.SingleCall;
                    else
                        objectModeFound = false;
                    break;
                } // case "mode"

                case "objectUri": objectURI = (String)entry.Value; break;

                case "type":
                {
                    RemotingConfigHandler.ParseType((String)entry.Value, out typeName, out assemName);
                    break;
                } // case "type"


                default: break;
                } // switch
            } // foreach

            // examine child nodes
            foreach (ConfigNode childNode in node.Children)
            {
                switch (childNode.Name)
                {
                case "contextAttribute":
                {
                    contextAttributes.Add(ProcessContextAttributeNode(childNode, configData));
                    break;
                } // case "contextAttribute"

                case "lifetime":
                {
                    // <
                     break;
                } // case "lifetime"


                default: break;

                } // switch
            } // foreach child node
            

            // check for errors
            if (!objectModeFound)
            {
                ReportError(
                    Environment.GetResourceString("Remoting_Config_MissingWellKnownModeAttribute"),
                    configData);
            }                   
            
            if ((typeName == null) || (assemName == null))
                ReportMissingTypeAttributeError(node, "type", configData);


            // objectURI defaults to typeName if not specified
            if (objectURI == null)
                objectURI = typeName + ".soap";

            configData.AddServerWellKnownEntry(typeName, assemName, contextAttributes,
                objectURI, objectMode);
        } // ProcessServiceWellKnownNode
 private static void ProcessServiceWellKnownNode(ConfigNode node, RemotingXmlConfigFileData configData)
 {
     string typeName = null;
     string assemName = null;
     ArrayList contextAttributes = new ArrayList();
     string objURI = null;
     WellKnownObjectMode singleton = WellKnownObjectMode.Singleton;
     bool flag = false;
     foreach (DictionaryEntry entry in node.Attributes)
     {
         string str6;
         if (((str6 = entry.Key.ToString()) != null) && (str6 != "displayName"))
         {
             if (!(str6 == "mode"))
             {
                 if (str6 == "objectUri")
                 {
                     goto Label_00BE;
                 }
                 if (str6 == "type")
                 {
                     goto Label_00CD;
                 }
             }
             else
             {
                 string strA = (string) entry.Value;
                 flag = true;
                 if (string.CompareOrdinal(strA, "Singleton") == 0)
                 {
                     singleton = WellKnownObjectMode.Singleton;
                 }
                 else if (string.CompareOrdinal(strA, "SingleCall") == 0)
                 {
                     singleton = WellKnownObjectMode.SingleCall;
                 }
                 else
                 {
                     flag = false;
                 }
             }
         }
         continue;
     Label_00BE:
         objURI = (string) entry.Value;
         continue;
     Label_00CD:
         RemotingConfigHandler.ParseType((string) entry.Value, out typeName, out assemName);
     }
     foreach (ConfigNode node2 in node.Children)
     {
         string name = node2.Name;
         if (name != null)
         {
             if (!(name == "contextAttribute"))
             {
                 if (name == "lifetime")
                 {
                 }
             }
             else
             {
                 contextAttributes.Add(ProcessContextAttributeNode(node2, configData));
             }
         }
     }
     if (!flag)
     {
         ReportError(Environment.GetResourceString("Remoting_Config_MissingWellKnownModeAttribute"), configData);
     }
     if ((typeName == null) || (assemName == null))
     {
         ReportMissingTypeAttributeError(node, "type", configData);
     }
     if (objURI == null)
     {
         objURI = typeName + ".soap";
     }
     configData.AddServerWellKnownEntry(typeName, assemName, contextAttributes, objURI, singleton);
 }