private AddServerWellKnownEntry ( String typeName, String assemName, |
||
typeName | String | |
assemName | String | |
contextAttributes | ||
objURI | String | |
objMode | WellKnownObjectMode | |
Результат | ServerWellKnownEntry |
} // 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); }