'Add Service Reference ...'를 사용하여 참조를 추가 한 프로젝트에서 WCF 서비스를 사용하고 있습니다. ServiceClient 엔티티와 인터페이스로 깨끗한 프록시를 생성 할 것으로 기대했습니다. 대신, 각 OperationContract 메소드에 대해 MethodNameRequest, MethodNameRequestBody, MethodNameResponse, MethodNameResponseBody 엔티티를 작성했음을 알았습니다.메시지 계약 생성 WCF 용 프록시 생성
서비스 메소드를 호출하는 동안 프록시는 메소드의 입력 매개 변수를 RequestBody의 특성으로 사용하여 MethodNameRequest의 인스턴스를 서비스 메소드에 전달합니다. 아래에서 매개 변수를 허용하지 않는 AboutInformationGet() 메서드 호출의 예를 참조하십시오.
public WCFDynamicInvocation.PostingService.AboutModel AboutInformationGet() {
WCFDynamicInvocation.PostingService.AboutInformationGetRequest inValue = new WCFDynamicInvocation.PostingService.AboutInformationGetRequest();
inValue.Body = new WCFDynamicInvocation.PostingService.AboutInformationGetRequestBody();
WCFDynamicInvocation.PostingService.AboutInformationGetResponse retVal = ((WCFDynamicInvocation.PostingService.IMIGQPosting)(this)).AboutInformationGet(inValue);
return retVal.Body.AboutInformationGetResult;
}
저는이 동작이 웹 서비스 프록시에서 볼 것으로 예상되는 것이라고 생각합니다. 따라서 WCF 서비스가 제대로 구성되어 있지 않은 것 같습니다.
여기 누군가가이 문제에 직면 했습니까? 생성 된 프록시가 WCF 서비스와 유사하도록 서비스에서 수행 할 변경 사항은 무엇입니까?
건배.
링크는 Praburaj에게 감사드립니다. '항상 메시지 계약 생성'확인란은 선택되어 있지 않습니다. 또한, 나는 모든 객체가 OP와 함께 DataContract 특성을 가졌는지 확인했다. 문제는 여전히 지속되지만 지금 나는 그 문제에 직면 한 유일한 사람이 아니라는 것을 알고 있습니다. :) – Rair
@RonalR, 또는 svcutil을 사용하여 참조를 생성하려고 했습니까? 당신도 같은 행동을합니까? – Praburaj
예상대로 Svcutil은 동일한 프록시 클래스를 생성합니다. – Rair