/// <summary> /// 根据证书中的appendDetail和客户端配置的WcfClientInvokeAttribute -> SystemCode /// 来解析出关联系统的服务连接 /// </summary> /// <param name="code">客户端的配置System Code</param> /// <param name="appendDetail">证书中的appendDetail信息以分号分隔</param> /// <returns>关联系统的服务的信息</returns> private static WcfCredentialInfo resolveSubSystemCredentialInfo(SystemCode code, string appendDetail, WcfCredentialInfo mainCredentialInfo) { if (!string.IsNullOrEmpty(appendDetail)) { string[] subServices = appendDetail.Split(';'); if (subServices.Length > 0) { foreach (string subService in subServices) { string[] subServiceAttribute = subService.Split(','); if (subServiceAttribute.Length > 0 && subServiceAttribute.Length == 5) { string systemCode = subServiceAttribute[0].Substring( subServiceAttribute[0].IndexOf("CfgName=") + "CfgName=".Length); if (string.Compare(code.ToString(), systemCode, true) == 0) { WcfCredentialInfo subCredetialInfo = MB.Util.MyReflection.Instance.FillModelObject <WcfCredentialInfo>(mainCredentialInfo); string uri = subServiceAttribute[1].Substring("URL=".Length); subCredetialInfo.EndpointFormatString = uri; subCredetialInfo.BaseAddress = uri.Substring(0, uri.Length - "{0}.svc".Length - 1); subCredetialInfo.Domain = subServiceAttribute[2].Substring("Domain=".Length); subCredetialInfo.UserName = subServiceAttribute[3].Substring("LoginName=".Length); subCredetialInfo.Password = subServiceAttribute[4].Substring("LoginPassword=".Length); return(subCredetialInfo); } } } } } return(null); }