내 솔루션에는 각각 자신의 콜백 인터페이스를 구현하는 몇 가지 WCF 서비스가 있습니다. 의 그들이이라고 가정 해 봅시다 : Subscribe1
을 ISubscribe1
및 ICallback1
와 등WCF 서비스의 다른 인터페이스를 상속하는 인터페이스
ICallbacks 사이에 공유하는 몇 가지 방법이 있습니다 일이, 그래서 나는 다음과 같은 인터페이스를 만들어 :
interface ICallback
{
[OperationContract]
void CommonlyUsedMethod();
}
을하고 난 모두를 상속 : ICallback1 : ICallback
, ICallback2 : ICallback
등. 모든 콜백 인터페이스에서 CommonlyUsedMethod()
을 삭제했습니다.
이제 서비스 측면 코드에서 모든 것이 잘 컴파일되고 서비스는 평소대로 작동 할 수 있습니다. 그러나 클라이언트에 대한 서비스 참조를 업데이트 할 때 CommonlyUsedMethod()는 reference.cs 파일 (ISubscribeCallback 부분)에서 제거되어 더 이상 클라이언트에 데이터를 보내지 못했습니다.
음 ... 서비스의 실제 인스턴스가 다른 인터페이스에서 상속받는 대신 두 인터페이스를 모두 구현하도록 시도 했습니까? 가능성과 마찬가지로, 가치가있을 수 있습니다. 그래서 CallbackConcreteImplementation1 : ICallback1, ICallback 및 CallbackConcreteImplementation2 : ICallback2, ICallback과 비슷합니다. 도움이 될지 모르지만 한 번 시도해보십시오. – EdgarVerona
콜백을 설정할 때 ISubscribe1 인터페이스 전에 사용하기 때문에이 작업을 수행 할 수 없습니다 (또는 어떻게해야할지 모르겠다). [ServiceContract (SessionMode = SessionMode.Required, CallbackContract = typeof (ICallback1))] – avance70