WCF显示属性

时间:2012-02-22 17:50:24

标签: wcf attributes dto

我有一个DTO,我用[显示(名称=“我的显示名称”)]来装饰属性。

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

也许我做错了什么?

2 个答案:

答案 0 :(得分:1)

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

这就是为什么服务器端类上的私有字段不会出现在客户端类上的原因。如果您希望客户端可以使用属性,那么您将不得不在客户端手动添加它们。

有人说过......如果您同时控制服务器和客户端,可以使用一些技巧来确保双方都使用相同的类。最简单的方法是将所有DataContract类放入一个单独的程序集中,并从服务器和客户端引用它。如果使用服务引用生成客户端代理,请确保在生成代理时选中“在引用的程序集中重用类型”。

答案 1 :(得分:0)

你做不到。这些属性不会在SOAP消息中使用DTO进行序列化。这是因为属性不是平台无关的。认为您的服务适用于不是必需的.NET实现的客户端。