Почему я получаю 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 из сборки общего контракта, все это работает!