Dlaczego otrzymuję InvalidCastException z OperationContext.Current.GetCallbackChannel <> ()

Aby umożliwić klientom oddzwanianie aysc, muszę dodać metody Początek / Koniec do interfejsu zdefiniowanego jako kontrakt zwrotny w mojej usłudze.(Używam zestawu kontraktów ścinanych zamiast generowania klas proxy)

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

Jako pierwszy krok mamwłaśnie skopiowałem interfejs IClient ze wspólnego interfejsu do lokalnej przestrzeni nazw, bez wprowadzania żadnych innych zmian. Oczekiwałbym tego, podobnie jak interfejslogicznie tak jak w kontrakcie, WCF zezwoli na jego użycie.Jednak WCF nie lubi tego z jakiegoś powodu, dlaczego?

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

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

Jeśli jednak użyję oryginalnego interfejsu IClient ze wspólnego kontraktu, to wszystko działa!

questionAnswers(2)

yourAnswerToTheQuestion