Un contrato de servicio sólo puede designar un contrato de devolución de llamada si ese contrato es una subinterfaz de todos los contratos de devolución de llamada definidos por contratos de bases propias del contrato.
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
Ah, pensé sub-interfaz significaba algo así como interfaz base ... es más bien lo contrario. Ahora tiene muchísimo sentido de repente. Y se ajusta más perfectamente al diseño de mi aplicación planificada. – mafu
@mafutrct: buena suerte. – garik
@garik ¡buena respuesta! esto no es algo que sea intuitivo o fácil de encontrar, pero funciona como se indica. – SouthShoreAK