2012-02-22 67 views
1

我有一个DTO,我用[Display(Name =“My Display Name”)]装饰了属性。WCF显示属性

我正在使用WCF服务,但该属性似乎没有工作。在检查我的服务引用时,生成的DTO客户端不具有应用的属性。

也许我做错了什么?

回答

1

您创建的类和对象服务器端不存在客户端。当你使用WCF时,你正在将一个类的实例序列化为数据(通常是XML,但也可能是二进制文件,具体取决于你的绑定),通过互联网发送,然后将其反序列化为类似的实例一流的客户端。这个相似的类通常由基于服务的WSDL的服务引用创建。

这就是为什么你的服务器端类的私有字段不会出现在你的客户端类。如果你想要客户端可用的属性,你将不得不手动将它们添加到客户端。

这样说了...如果你控制服务器和客户端,你可以使用一些技巧来确保你在两边都使用同一个类。最简单的方法是将所有的DataContract类放入一个单独的程序集中,并从服务器和客户机中引用它。如果使用服务引用生成客户端代理,请务必在生成代理时检查“在引用的程序集中重用类型”。

+1

谢谢,多数民众赞成我认为,已经有一个dto库,我共享电线的两侧,并远离它。看起来再次退后一步。 – David 2012-02-22 18:05:39

0

你不能。这些属性不会与SOAP消息中的DTO序列化。这是因为属性不是平台独立的。认为你的服务适用于不需要.NET实现的客户端。