資源描述:
《cls生物免疫治療》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、rameters);MapRefOutParameter(methodCall.MethodBase,allArgs,refOutParameters);66:://通過ReturnMessage的形式將返回値和ref/out參數(shù)返回:returnnewReturnMessage(returnValue,allArgs,allArgs?Length,methodcall?LogicalCallContext,methodCall);69:}70:privateintGetRefOutParameterCount(MethodBasemethod){intcount=0;for
2、each(ParameterInfoparameterinmethod.GetParameters()){if(parameter.TsOutIIparameter.ParameterType.IsByRef){count++;))returncount;}privatevoidMapRefOutParameter(MethodBasemethod,object[]allArgs,object[]ListrefOutParamPositionsList=newList();foreach(Parameterinfoparameterinmethod.GetP
3、arameters()){if(parameter.IsOut
4、
5、parameter.ParameterType.IsByRef){refOutParamPositionsList.Add(parameter?Position);}}int[]refOutParamPositionArray=refOutParamPositionsList.ToArray();for(inti=0;i6、nnelFactory創(chuàng)建服務(wù)代理對(duì)彖進(jìn)行服務(wù)的調(diào)用,在這里我們也創(chuàng)建一個(gè)完成相似功能的工廠類型:SerivceProxyFactory,泛型類型T代表服務(wù)契約類型。用于創(chuàng)建服務(wù)代理的Create方法很簡(jiǎn)單:先通過Utility.Create方法創(chuàng)建客戶端進(jìn)行服務(wù)調(diào)用必須的相關(guān)組件對(duì)象,通過這些對(duì)象連同該方法的參數(shù)(消息版本和服務(wù)目的地址)創(chuàng)建ServiceRealProxy對(duì)象,最終返回的是該RealProxy的TransparentProxy。1:namespaceArtech?WcfFrameworkSimulator.Client2:{3:4?
7、publicstaticclassSerivceProxyFactory5:(Z?tpublicstaticTCreate(MessageVersionmessageVersion,UriremoteAddress)7:tMessageEnccderFactoryencoderFactory;8:IDictionarydientFormatteiss;9:IDictionarydispatchFormatters;
8、10:IDictionaryoperationInvokers;11:IDictionbryvstring,Methodlnfo>methods;12:Utility?Create(outencoderFactory,outclientFormatters,outdispatchFormatters,outoperationInvokers,outmethods);13:ServiceRealProxyrealProxy=newServiceRealProxy(messageversion,
9、remoteAddress,clientFormatters,encoderFactory);14:return(T)realProxy?GetTransparentProxy();15:}16:}17:}那么在最終的客戶端代碼屮就可以借助SerivceProxyFactory創(chuàng)建服務(wù)代理進(jìn)行服務(wù)調(diào)用了,而這里服務(wù)的口標(biāo)地址實(shí)際上是上面用于模擬WCF服務(wù)端框架的.aspxWebPage的地址。1:namespaceArtech.WcfFrameworksimulator?Client2