// Methods public DefaultDestinationConfiguration(RfcDestinationCollection destCollection) { try { IEnumerator enumerator = destCollection.GetEnumerator(); this.destinations = new Dictionary <string, RfcConfigParameters>(); while (enumerator.MoveNext()) { RfcDestinationParameters current = (RfcDestinationParameters)enumerator.Current; RfcConfigParameters parameters2 = new RfcConfigParameters(0x20); //RfcConfigParameters parameters2 = new RfcConfigParameters(); // Assembly a = Assembly.LoadFrom("sapnco.dll"); // String ConfigFileToolpath = System.AppDomain.CurrentDomain.BaseDirectory + "ConfigFileTool.dll"; // PropertyInfo[] properties = Assembly.LoadFrom(ConfigFileToolpath).GetType("ConfigFileTool.SapConfig.RfcDestinationParameters").GetProperties(); PropertyInfo[] properties = current.GetType().GetProperties(); // PropertyInfo[] properties = Assembly.LoadFrom("ConfigFileTool.dll").GetType("ConfigFileTool.SapConfig.RfcDestinationParameters").GetProperties(); // String sapncoPath = System.AppDomain.CurrentDomain.BaseDirectory + "sapnco.dll"; // Type type = Assembly.LoadFrom(sapncoPath).GetType("SAP.Middleware.Connector.RfcConfigParameters"); // Type type = Assembly.LoadFrom("sapnco.dll").GetType("SAP.Middleware.Connector.RfcConfigParameters"); Type type = parameters2.GetType(); for (int i = 0; i < properties.Length; i++) { string str = properties[i].GetValue(current, null) as string; if ((str != null) && (str.Length > 0)) { parameters2[(string)type.GetField(properties[i].Name).GetValue(null)] = str; } } this.destinations[current.Name] = parameters2; SAPLogonConfigList.SystemNameList.Add(current.Name); } } catch (Exception exception) { throw new SAPException(exception.Message + "无法加载程序集ConfigFileTool.exe,或sapnco.dll"); } }
/// <summary> /// 从配置文件中加载客户端设置的名列表。 /// </summary> /// <returns></returns> public static List <string> LoadSAPClientNameList() { List <String> ClientList = new List <string>(); try { RfcGeneralConfiguration configuration2 = getSAPGeneralConfiguration(); RfcDestinationCollection clientsSetting = getClientSettings(); IEnumerator enumerator = clientsSetting.GetEnumerator(); while (enumerator.MoveNext()) { RfcDestinationParameters current = (RfcDestinationParameters)enumerator.Current; ClientList.Add(current.Name); } // RfcDestinationManager.RegisterDefaultConfiguration(new DefaultDestinationConfiguration(clientsSetting)); } catch (Exception) { throw; } return(ClientList); }