我在IIS中托管了WCF服务.目的是让客户端进行调用并接收在另一个项目/ dll中定义的自定义类.我使用svcutil.exe生成了一个服务客户端.问题是这个自动生成的客户端包含我尝试从服务返回的类的新的部分/代理定义.它现在在编译时抛出我的原始自定义类和新的部分定义之间的转换错误.那么如何从WCF服务返回用户定义的类型?建议表示赞赏.
解决方法
刚到第二个
Yossi’s/
Rich’s想法:
>是的,您可以添加对共享dll的引用(而不是使用生成的代理类)
>是的,它违背了数据合同的许多意图,如果发生任何类型的自定义序列化,您可能会在扩展服务时遇到问题
我之前走过这条路,并且在某些方面希望我没有.可扩展性/自定义序列化 – 你必须非常小心.如果使用预卷序列化程序(例如protobuf-net(可以直接集成到WCF,并且设计时考虑了可扩展性),则会更容易一些,但这并不容易.
实际上,共享类的一个优点是它使测试更容易:因为你到处都有相同的IFoo,你可以用合理的成功机会模拟IFoo.在代理涉及时(当您在测试代码和生产代码之间更改更多移动部件时)更难模拟.