인터페이스 전용 WCF 서비스를 만들 수도 있습니까? 내 이유는 이것에 대한 이유는 서버가 DataContracts 및/또는 KnownTypes의 새로운 DLL로 업데이트 될 때마다 클라이언트가 새로운 구체화 구현을 할 때마다이를 업데이트하지 않아야한다는 것입니다.이를 수행 할 수있는 방법이 있습니까? WCF에서도 가능합니까? (클라이언트와 서버에있는)WCF 인터페이스 전용 서비스
예 인터페이스 : IRequest의
[ServiceContract]
public interface IProcessingService
{
[OperationContract]
IResponse Process(IRequest request);
}
public interface IRequest { ... }
public interface IResponse { ... }
없음 구현은 서버 측에 존재하는 것이고, IProcessingService/IResponse은 서버 측에서 구현 될 수있다.
[DataContract]
internal class ProcessingTypeARequest : IRequest { ... }
[DataContract]
internal class ProcessingTypeBRequest : IRequest { ... }
내 목표는 클라이언트에 존재 IRequest의 구체적인 구현을 가지고, 그래서 난 단지 통신에 클라이언트와 서버를 싶습니다
예를 DataContract 구현 (전용 클라이언트 측 존재) 인터페이스를 사용하여. 이것은 가능한가?
나는 System.ServiceModel.CommunicationException 항상이 유사한 오류 메시지와 함께 런타임에 발생하기 때문에 그것이 가능하지 않다 의심 다음 InnerExceptionMessage이었다 매개 변수 요청을 직렬화하는 동안 오류가 발생했습니다
'형식 ProcessingTypeARequest with 데이터 계약 이름 ProcessingTypeARequest가 필요하지 않습니다. DataContractResolver를 사용하거나 알려진 유형의 목록에 정적으로 알지 못하는 유형을 추가하는 것이 좋습니다. 예를 들어 KnockTypeAttribute 속성을 사용하거나 DataContractSerializer에 전달 된 알려진 유형 목록에 추가합니다.
클라이언트는 서비스의 기능을 지시해서는 안됩니다. 그렇지 않으면, 나는 서버에 혼란을 가져 오는'MaliciousRequest' 구현을 가질 수 있습니다. – cadrell0