2012-10-28 27 views
2

我在WCF.i新手正在尋找多種回調契約可以或不可以的出路像下面WCF和多回調契約可能

[ServiceContract (
CallbackContract = typeof (CallbackContract_1), 
CallbackContract = typeof (CallbackContract_2), 
CallbackContract = typeof (CallbackContract_3)) 
] 
public interface SomeWcfContract {} 

我在谷歌搜索和發現的出路,這是像

interface ICallbackContract1 
{...} 

interface ICallbackContract2 : ICallbackContract1 
{...} 

[ServiceContract(CallbackContract = typeof(ICallbackContract1))] 
interface IMyBaseContract 
{...} 

[ServiceContract(CallbackContract = typeof(ICallbackContract2))] 
interface IMySubContract : IMyBaseContract 
{...} 

or 

interface ICallbackContract1 
{...} 
interface ICallbackContract2 
{...} 
interface ICallbackContract3 : ICallbackContract2,ICallbackContract1 
{...} 

[ServiceContract(CallbackContract = typeof(ICallbackContract1))] 
interface IMyBaseContract1 
{...} 
[ServiceContract(CallbackContract = typeof(ICallbackContract2))] 
interface IMyBaseContract2 
{...} 
[ServiceContract(CallbackContract = typeof(ICallbackContract3))] 
interface IMySubContract : IMyBaseContract1,IMyBaseContract2 
{...} 

我只需要知道是否有任何其他出路多回調合同。謝謝

回答

0

對於單個服務合約(它是1:1關係,回調合約可以爲空),您不能有多個回調合約。正如你發現的那樣,這種替代方案(使用多個「前向」合同,每一個都有自己的回調合約)應該能夠工作,儘管我還沒有嘗試過(你可以編寫一個簡單的程序來測試它)。