欢迎来到天天文库
浏览记录
ID:47646766
大小:14.60 KB
页数:9页
时间:2019-10-15
《cls生物免疫治疗》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、rameters);MapRefOutParameter(methodCall.MethodBase,allArgs,refOutParameters);66:://通过ReturnMessage的形式将返回値和ref/out参数返回: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创建服务代理对彖进行服务的调用,在这里我们也创建一个完成相似功能的工厂类型:SerivceProxyFactory,泛型类型T代表服务契约类型。用于创建服务代理的Create方法很简单:先通过Utility.Create方法创建客户端进行服务调用必须的相关组件对象,通过这些对象连同该方法的参数(消息版本和服务目的地址)创建ServiceRealProxy对象,最终返回的是该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创建服务代理进行服务调用了,而这里服务的口标地址实际上是上面用于模拟WCF服务端框架的.aspxWebPage的地址。1:namespaceArtech.WcfFrameworksimulator•Client2
6、nnelFactory创建服务代理对彖进行服务的调用,在这里我们也创建一个完成相似功能的工厂类型:SerivceProxyFactory,泛型类型T代表服务契约类型。用于创建服务代理的Create方法很简单:先通过Utility.Create方法创建客户端进行服务调用必须的相关组件对象,通过这些对象连同该方法的参数(消息版本和服务目的地址)创建ServiceRealProxy对象,最终返回的是该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创建服务代理进行服务调用了,而这里服务的口标地址实际上是上面用于模拟WCF服务端框架的.aspxWebPage的地址。1:namespaceArtech.WcfFrameworksimulator•Client2
此文档下载收益归作者所有