2011-09-30 124 views
0

我正在使用automapper將主類映射到各種子類。WCF返回類型問題

示例:我有一個名爲VitalStatistics(主類)的類。這個類包含記錄的所有字段。

公司的業務規則表明,只有某些領域是需要根據國家的位置。 因此,加利福尼亞州可能並非在主類中找到的所有20個字段,並且可能只需要10個字段而不是20個。因此,我使用automapper將VitalStatis類數據映射到只有10個字段的CAVitalStats類。 TXVitalStats類可能只有3個字段。

我的網絡服務需要返回這些類共有的類型。例如。 IVitalStatistics界面。

看起來好像WCF服務不喜歡聲明爲返回類型的接口。 那麼,我該如何獲得返回CAVitalStats或TXVitalStats的服務?通常情況下,如果這兩者都是相同的接口類型,那麼這將起作用,因爲它們都是IVitalStatistics類型的,但序列化消息傳遞規則似乎在返回接口類型時遇到問題。

我希望這是有道理的。謝謝

回答

0

如果你有CAVitalStats和TXVitalStats都繼承於同一個基類,例如'VitalStatsBase',那麼你的服務方法可以返回VitalStatsBase。

爲了使您的2個子類能夠正常工作,您需要在服務中使用KnownTypeAttribute。

下面是描述KnownTypeAttribute的鏈接。

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