从不同的端点返回不同的DataMembers

时间:2012-04-27 02:45:39

标签: c# wcf

是否可以根据从中返回的端点返回类的不同DataMembers?

从一个端点我只想返回一个类的一些基本DataMembers,但是从另一个端点我想返回同一类的更详细的成员。

我的想法是,我可以拥有一个基础类,并派生出另一个具有更多详细信息的类,并从不同的端点返回这些信息,但我也想知道是否还有另一种方法可以实现?

1 个答案:

答案 0 :(得分:0)

你的建议是完全合理的。这些课程无论如何都是DTO(大概),他们的重点是将您的商业模式与您的消息模型分离。如果你有两个消息模型,有一个派生(或包含)另一个是好的。

考虑一下,替代模型会是什么样子?具有复杂注释的单一类型表示这些数据成员属于哪些服务?这会很快变得笨拙,甚至没有考虑你的业务对象将如何映射到这个模型(即映射是否需要知道正在调用哪个端点?这非常难看。)

所以只是:

public class EntityBase
{
    // basic details here
}

public class EntityDetails: EntityBase
{
    // more complex details initialised here
}

然后你的端点可以对它们进行强类型化,你可以共享映射逻辑,并实现你想要的。

相关问题