Почему я получаю InvalidCastException от OperationContext.Current.GetCallbackChannel <> ()

Чтобы включить обратные вызовы aysc для клиентов, мне нужно добавить методы Begin / End в интерфейс, который определен как CallbackContract на моем сервисе.(Я использую стриженную контрактную сборку, а не генерирую прокси-классы)

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

В качестве первого шага у меня естьтолько что скопировал Интерфейс IClient из сборки общего интерфейса в локальное пространство имен без каких-либо других изменений. Я ожидаю, что в качестве интерфейсалогически WCF разрешает использовать его так же, как и в контракте.Однако WCF почему-то не нравится, почему?

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

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

Однако, если я просто использую оригинальный интерфейс IClient из сборки общего контракта, все это работает!

Ответы на вопрос(2)

Ваш ответ на вопрос