在WCF服务中覆盖ToString方法

lev*_*evi 6 .net c# wcf serialization partial-classes

这是我的服务生成类:

public partial class MyClass : object, 
                               System.Runtime.Serialization.IExtensibleDataObject, 
                               System.ComponentModel.INotifyPropertyChanged 
{ }
Run Code Online (Sandbox Code Playgroud)

我正在使用自己的服务.在MyClass我已经被覆盖ToString()但我没有在我的客户端.我要么要生成它,要么MyClass部分我能够覆盖ToString自己?

我知道我可以用生成的.cs文件写.什么是最好的方法,我应该做什么?

Mic*_*eld 6

如果要定义客户端和服务,则不需要使用WSDL生成类.将共享对象移动到单独的程序集中,并从客户端和服务器项目中引用它.当您创建服务引用时,有一个"高级"选项(我认为默认情况下处于启用状态),它重用WSDL中的任何已知类而不是生成新类.

更好的是,如果将服务合同移动到共享库中,您甚至不需要创建服务引用,只需ChannelFactory直接调用并消除整个自动生成的代理类.

我对如何做这些事情都在我的博客演示:http://blog.kutulu.org/2012/03/proxy-free-wcf-ditching-proxy.html

如果你绝对需要使用来自服务的WSDL(例如,您不必在服务端控制,它可以改变你),那么你可以扩展VS创建部分类(如你所说).这些天你从VS获得的大多数自动生成类都是部分类,专门用于实现这种扩展.当然,缺点是没有什么能保证客户端和服务器的附加部分类方法是相同的.我绝对认为这是最后的选择.