2010-03-23 6 views
5

Ich versuche, etwas wie folgt aus:Kann ein WCF-Vertrag mehrere Callback-Schnittstellen verwenden?

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

Ich weiß es nicht so funktioniert. Gibt es noch einen Weg, um einen einzigen Vertrag mehrere Callback-Schnittstellen zu verwenden?

Antwort

6

Ein Vertrag Service kann nur einen Rückrufvertrag bezeichnen, wenn dieser Vertrag ein Subschnittstelle aller eigenen Basisverträge der definierten Verträge Rückruf ist durch den Vertrag.

interface ICallbackContract1 
{...} 

interface ICallbackContract2 : ICallbackContract1 
{...} 

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

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

oder

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 
{...} 

see for more details

+0

Ah, dachte ich Sub-Schnittstelle so etwas wie Basis-Interface gemeint ... es eher das Gegenteil ist. Jetzt macht es plötzlich sehr viel Sinn. Und es passt perfekt zu meinem geplanten App-Design. – mafu

+0

@mafutrct: viel Glück. – garik

+0

@garik gute Antwort! Das ist nicht intuitiv oder leicht zu finden, aber es funktioniert wie gesagt. – SouthShoreAK

Verwandte Themen