我正在使用automapper将主类映射到各种子类。
示例:我有一个名为VitalStatistics (master class)的类。该类保存一条记录的所有字段。
公司业务规则指出,根据State位置,只需要某些字段。因此,California可能不会在master类中找到所有20个字段,可能只需要10个字段而不是20个。因此,我使用automapper将vitalstats类数据映射到只有10个字段的CAVitalStats类。TXVitalStats类可能只有3个字段。等
我的web服务需要返回这些类共有的类型。例如:IVitalStatistics接口
似乎WCF服务不喜欢将接口声明为返回类型。那么,我如何让服务返回CAVitalStats或TXVitalStats?通常情况下,如果这两个都是相同的接口类型,那么这将工作,因为它们都将是IVitalStatistics类型,但是序列化消息传递规则似乎在返回接口类型方面有问题。
我希望这是有意义的。由于如果您有CAVitalStats和TXVitalStats都继承自相同的基类,例如'VitalStatsBase',那么您的服务方法可以返回VitalStatsBase。
要在你的2个子类中工作,你需要在你的服务中使用KnownTypeAttribute。
下面是描述KnownTypeAttribute的链接。
http://msdn.microsoft.com/en-us/library/ms730167.aspx