控制通过服务引用序列化的属性

时间:2010-03-03 20:17:42

标签: wcf web-services datacontractserializer

我们有一个指向WCF服务的服务引用,它作为我们的模型层的代理,我们的数据访问逻辑正在处理中。我们使用Linq2Sql作为ORM来促进数据库通信。

我们使用生成的类作为我们的数据访问层,但返回的实际上是愚蠢的DTO对象,它们只不过是POCO。我想做两件事)

1)根据自定义类型及其相关属性,通过服务引用控制客户端上可用的内容。这是为了减少下降的类的大小。

2)我知道Linq2Sql实际上正在装饰所有生成的类,但我不希望这些类通过服务引用下载。

目前,如果我们使用该类作为输入参数的返回类型,它将被序列化。这很好,除了我想限制可用的属性

思想?

2 个答案:

答案 0 :(得分:0)

所以我发现了这一点。基本上,当您创建服务引用时,只会以某种方式使用的类型被序列化。默认情况下,如果没有DataContract,则所有内容都会被序列化。

如果存在DataContract,它将查找DataMember修饰属性并仅对其进行序列化。棘手的

答案 1 :(得分:0)

您希望DTO通过您的服务边界,从Linq到SQL对象中抽象出来,对吗?

如果是这种情况,那么我建议定义您的DTO(如果您有很多对象,编写或找到一些好的T4模板),然后使用AutoMapper在您的DTO和Linq到SQL对象之间来回切换。