WCF退货类型问题

时间:2011-09-30 16:11:31

标签: asp.net wcf web-services

我正在使用automapper将主类映射到各种子类。

示例:我有一个名为VitalStatistics的类(大师班)。该类包含记录的所有字段。

公司业务规则表明,根据州位置,只需要某些字段。 因此,加利福尼亚可能不会在大师班中找到所有20个字段,可能只需要10个字段而不是20个字段。因此我使用automapper将VitalStatis类数据映射到只有10个字段的CAVitalStats类。 TXVitalStats类可能只有3个字段。等。

我的Web服务需要返回这些类共有的类型。例如。 IVitalStatistics界面。

好像WCF服务不喜欢声明为返回类型的接口。 那么,我如何获得返回CAVitalStats或TXVitalStats的服务?通常,如果它们都具有相同的接口类型,那么这将起作用,因为它们都是IVitalStatistics类型,但序列化消息传递规则似乎在返回接口类型时存在问题。

我希望这是有道理的。感谢

1 个答案:

答案 0 :(得分:0)

如果您的CAVitalStats和TXVitalStats都继承自相同的基类,例如'VitalStatsBase',那么您的服务方法可能会返回VitalStatsBase。

要使这与2个子类一起使用,您需要在服务中使用KnownTypeAttribute。

以下是描述KnownTypeAttribute的链接。

http://msdn.microsoft.com/en-us/library/ms730167.aspx