1

2008 년에 누군가가 묻는 질문에 대해 proxy-generation of client-side behaviors, 반복하고 싶습니다. 부가 서비스 참조 대화 상자에서 "발견"을 실행하면 Visual Studio (또는 svcutil)에서 서비스 계약 또는 작업의 특성으로 장식 된 사용자 지정 클라이언트 측 동작을 "승인"해야합니다. 결과적으로 이미 클라이언트 쪽 동작 (및 어셈블리 참조)이 자동으로 추가 된 프록시가됩니다.클라이언트 동작을 사용하여 WCF 프록시 생성

VS 2010 SP1부터이 기능을 사용할 수없는 것 같습니다. VS 2012가 그렇게합니까? 거기에 타사 도구가 있습니까?

p.s. 명확히하기 위해 WSDL 기능 확장에 대해 묻지는 않습니다. 나는 위의 트릭이 그 일을 할 것으로 기대하지 않습니다. Visual Studio의 내장 프록시 생성 기능 내에서 "검색"버튼의 컨텍스트에서 엄격하게 말하고 있습니다.

답변

0

svcutil/add 서비스 참조를 사용할 수 있는지 확신 할 수 없지만 .NET Framework에 MEX/wsdl 끝점에서 런타임에 구성을 가져올 수있는 MetadataResolver이라는 클래스가 있습니다.

Resolve 메서드를 호출하면 특히 ServiceEndpointCollection 인스턴스가 반환됩니다. ServiceEndpoint에는 서비스에 정의 된대로 동작 컬렉션을 반환하는 Behaviors 속성이 있습니다.

이 경우 클래스를 특성으로 장식하는 대신 동작을 검색하기 위해 서비스를 호출합니다. 이렇게하면 클라이언트와 서버의 구성을 한 곳 (서비스)에 정의하고이를 동기화 상태로 유지할 수있는 이점이 있습니다 (클라이언트에서 수행해야하는 서비스 구성 업데이트와는 대조적 임). 네거티브는 서비스를 호출 할 때 두 번 호출한다는 것입니다 (정적 인 인스턴스를 가지고 Resolve 메소드의 응답을 메모리에 유지함으로써 과거에는 완화되었지만 서비스 메타 데이터를 노출해야 함).

관련 문제