對於我正在開發的項目,我正在使用WCF和SignalR的組合。WCF參考中未包含的類
WCF服務具有多個DTO,因爲它們是[OperationContract]
(作爲參數或返回類型)的一部分,所以它帶來的很好。
不過,我有兩個班(MachineStatusDto
和DeviceStatusDto
),它們只能通過SignalR用作返回類型爲廣播從服務器:
machine.On<MachineStatusDto>("Update", m => UpdateMachineRecord(m)); //On client side
我能明顯只是做一個方法上使用我的WCF服務這些類型,但我覺得應該有一種方法來通知WCF服務包含特定類型,即使它們不是[OperationContract]
的一部分。
編輯:
最後,如果你只需要添加[ServiceKnownType(typeof(SomeDto))]
到您的WCF的ServiceContract接口,它會知道這些類除了發送到顯式服務合同中所使用的那些。就那麼簡單。
通常我只希望這些類分成單獨的共享「域」項目,使所有項目都有類相同的觀點,而不是他已經被WCF服務引用。 – f0x
這些類已經全部位於服務解決方案中的共享「域」項目中(因此,如果我導入了DLL而不是使用服務引用,則會出現在該項目中)。我只是想避免必須傳遞一個DLL,而只是更新服務引用。 – Killnine
根據我的經驗,您必須將其附加到[OperationContract]以使其顯示在您的客戶端。我嘗試了多種方法,但最終我總是這樣做。 –