2013-10-03 81 views
0

對於我正在開發的項目,我正在使用WCF和SignalR的組合。WCF參考中未包含的類

WCF服務具有多個DTO,因爲它們是[OperationContract](作爲參數或返回類型)的一部分,所以它帶來的很好。

不過,我有兩個班(MachineStatusDtoDeviceStatusDto),它們只能通過SignalR用作返回類型爲廣播從服務器:

machine.On<MachineStatusDto>("Update", m => UpdateMachineRecord(m)); //On client side 

我能明顯只是做一個方法上使用我的WCF服務這些類型,但我覺得應該有一種方法來通知WCF服務包含特定類型,即使它們不是[OperationContract]的一部分。

編輯:

最後,如果你只需要添加[ServiceKnownType(typeof(SomeDto))]到您的WCF的ServiceContract接口,它會知道這些類除了發送到顯式服務合同中所使用的那些。就那麼簡單。

+2

通常我只希望這些類分成單獨的共享「域」項目,使所有項目都有類相同的觀點,而不是他已經被WCF服務引用。 – f0x

+0

這些類已經全部位於服務解決方案中的共享「域」項目中(因此,如果我導入了DLL而不是使用服務引用,則會出現在該項目中)。我只是想避免必須傳遞一個DLL,而只是更新服務引用。 – Killnine

+0

根據我的經驗,您必須將其附加到[OperationContract]以使其顯示在您的客戶端。我嘗試了多種方法,但最終我總是這樣做。 –

回答

1

這被討論過很多次, herehere

+0

我搜索了一個解決方案,但這些都圍繞'ServiceKnownType'(不完全是最直觀的搜索詞)。我將編輯我的原始問題,以便更清楚地瞭解適用於我的解決方案。 – Killnine