2010-03-23 7 views
5

J'essaie quelque chose comme ceci:Un contrat WCF peut-il utiliser plusieurs interfaces de rappel?

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

Je sais que cela ne fonctionne pas comme ça. Existe-t-il toujours un moyen d'obtenir qu'un seul contrat utilise plusieurs interfaces de rappel?

Répondre

6

Un contrat de service ne peut désigner un contrat de rappel si ce contrat est une sous-interface de tous les contrats de rappel définis par les propres contrats de base du contrat.

interface ICallbackContract1 
{...} 

interface ICallbackContract2 : ICallbackContract1 
{...} 

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

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

ou

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, je pensais que sous l'interface signifiait quelque chose comme l'interface de base ... il est plutôt le contraire. Maintenant, cela fait énormément de sens soudainement. Et cela correspond plus que parfaitement à la conception de mon application. – mafu

+0

@mafutrct: bonne chance. – garik

+0

@garik bonne réponse! ce n'est pas quelque chose qui est intuitif ou facile à trouver, mais cela fonctionne comme indiqué. – SouthShoreAK

Questions connexes