通常,我嘗試避免在WCF合約中使用繼承,寧願組合。我應該避免WCF中的消息繼承嗎?
但在下列情況下...
- 我有可能會導致兩件事情之一服務操作:ResultA和ResultB。
- 響應消息中有一個布爾值/枚舉來報告此結果。
- 響應消息中還有許多其他屬性。其中一些只與ResultA相關,有些只與ResultB相關。
我看到我的選項之中:
- 有一個包含一切,當性能是不相關的,它們被保留爲空單的響應消息的合同。然後客戶端必須查看bool/enum來查看其ResultA或ResultB並相應地忽略屬性。
- 有2個響應消息合約,都從共享基地繼承。一個表示ResultA及其相關屬性,另一個表示ResultB及其相關屬性。
我更喜歡選擇2的原因有很多,但它打破了繼承規則的構成。
人們會怎麼想?