当前位置: 首页 > 编程语言 > C#

C#LearningTutorial-SharinganinterfacebetweenaWCFserviceandaclient(markedW-ServiceContract)Sharing

时间:2023-04-11 01:21:00 C#

sharinganinterfacebetweenaWCFserviceandaclient(markedW/ServiceContract)我正在使用VS2010和.NET4.0。我在这里检查过(SharinganinterfaceimplementedinaWCFservice),但它的不同之处在于我试图完成的涉及一个标记为ServiceContract的接口。即在服务中,我有一个接口A(标记为ServiceContract)和一个扩展接口B(也标记为ServiceContract)。B由WCF服务实现。具体扩展如下:publicinterfaceApublicinterfaceB:A(“SpecificType”标记为DataContract。)显然,B在代理生成期间暴露给WCF客户端;但是,我还需要公开接口A(我正在实现一个半通用的发布/订阅系统,并且“发布者”需要能够检查/依赖接口A)。我尝试解决这个问题的第一种方法是创建一个单独的“共享”程序集,其中包含接口,并且可以被服务和客户端使用;然而,这并没有最终奏效,因为在发布者中,它需要确保B的实例实际上从A正确扩展。这种隐式转换失败,可能是因为服务引用似乎与“共享”程序集。为了解决这个问题,我手动编辑了Reference.cs文件,它终于起作用了(我添加了接口A的定义,并确保接口B正确引用了它)。但这会产生一个很大的问题,即每次更新服务引用时,这段代码都会被删除。查看了本网站和其他网站上的其他WCF回复后,我似乎无法找到明确的答案(也许我还没有完成所有这些回复以及他们的回复)。如果有人能指出我正确的方向,我将不胜感激。谢谢。向客户端提供对“原始”服务合同接口的访问(程序集或链接到.cs文件)。然后你有两个选择:1)将自动生成的代理调用包装到你自己的类方法调用中(根据需要实现接口)。服务参考更新不会伤害您。2)不要使用自动生成的代理。创建自己的代理(实现你的接口):以上就是C#学习教程的全部内容:共享WCF服务和客户端的接口(标记为W/ServiceContract),如果对大家有用需要了解一下more关于C#学习教程,希望大家多多关注—varbaseAddress="net.tcp://localhost:4503/MyService";varchannelFactory=newDuplexChannelFactory(newInstanceContext(newMyNotificationReceiver()),//MyNotificationReceiver-WCF回调实现类myNetTcpBinding,newEndpointAddress(baseAddress));varproxy=channelFactory.CreateChannel();代理.MyMethod();本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: