Por que recebo InvalidCastException de OperationContext.Current.GetCallbackChannel <> ()

Para habilitar callbacks do aysc para os clientes, eu preciso adicionar os métodos Begin / End à interface definida como o CallbackContract no meu serviço.(Estou usando um assembly de contrato fragmentado, em vez de gerar classes de proxy)

[ServiceContract(CallbackContract=typeof(IClient)]
interface IEngineManager

Como o primeiro passo que tenhoapenas copiado a interface IClient do assembly da interface compartilhada em um espaço de nome local, sem fazer nenhuma outra alteração. Eu esperaria que, como a interface élogicamente o mesmo que está no contrato, o WCF permitirá que ele seja usado.No entanto WCF não gosta por algum motivo, por quê?

[ServiceContract]
public interface IClient
{
  [OperationContract(Action = "ReceiveMessage", 
     ReplyAction = "ReceiveMessageResponse")]
  void ReceiveMessage(SimMessage message);
}

//....
// this give the InvalidCastException
var client = OperationContext.Current.GetCallbackChannel<MyNameSpace.IClient>();

No entanto, se eu usar a interface IClient original do assembly de contrato compartilhado, tudo funciona!

questionAnswers(2)

yourAnswerToTheQuestion