2010-03-23 17 views
5

sto cercando qualcosa di simile:Un contratto WCF può utilizzare più interfacce di callback?

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

so che non funziona in questo modo. C'è ancora un modo per ottenere un singolo contratto utilizzare più interfacce di callback?

risposta

6

Un contratto di servizio può designare solo un contratto di callback, se tale contratto è una sottointerfaccia di tutti i callback contratti definiti da propri contratti di base del contratto.

interface ICallbackContract1 
{...} 

interface ICallbackContract2 : ICallbackContract1 
{...} 

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

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

o

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, ho pensato sub-interfaccia significava qualcosa come l'interfaccia di base ... è piuttosto il contrario. Ora ha un sacco di buonsenso improvvisamente. E si adatta alla mia progettazione di app pianificata più che alla perfezione. – mafu

+0

@mafutrct: buona fortuna. – garik

+0

@garik buona risposta! questo non è qualcosa che è intuitivo o facile da trovare, ma funziona come dichiarato. – SouthShoreAK

Problemi correlati