2011-05-05 4 views
4

결과없이 wsdl 세대에서 몇 가지 사용자 지정 작업을 수행하는 데 많은 시간을 보냈습니다. 내가 뭘하고 싶은지에 대한 명확한 샘플을 찾을 수 없어서 (내가 놓친 것 같습니다) 주로 붙어 있습니다.WCF - 사용자 지정 WDSL 생성

생성 된 WSDL을 사용자 정의하고 싶습니다. 가장 관련성이 높은 기사는 기존 서비스에 동작을 추가하기 위해 특성을 추가하는 것에 관한 것입니다 (like this article).

내가 원하는 것은 OperationContract을 분석하고 필요한 경우 xsd를 생성하고 추가 할 수 있다는 것입니다.

내 질문은 :

  • 당신은 어떻게 차단 기존 WSDL 생성 속성를 추가하지 않고 추가하거나 할 수 있습니까?
  • 어떻게이 구성 요소를 구성 파일에 구성합니까?

난 그냥 '온 - 더 - 플라이'생성 된 WSDL의 일부 복합 타입을 추가, 메타 데이터 svcutil.exe에에 의해 소비되는 방식을 변경하지 않습니다.

의견을 보내 주셔서 감사합니다. 당신이 명확하게 IWsdlExportExtension.ExportContract하지만 the documentation을 구현하고 필요한 것은

답변

5

상태 : 메타 데이터 내보내기 시스템이 계약을 수출 때

ExportContract 방법은 라고합니다. 계약과 IWsdlExportExtension을 구현하는 작업 동작 만 ExportContract 호출을받습니다. IWsdlExportExtension을 구현하는 모든 동작이 이면 ExportEndpoint 호출이 이됩니다.

은 나를 위해 그것을 일반적으로 사용자 정의 속성에 의해 정의되는 계약 또는 작업 동작에 의해 구현하지만 당신은 또한 사용자 정의 초기에 이러한 행동을 할당 할 수 있어야 할 때이 방법에만 호출되는 것을 의미한다. Here is the example 구성 파일 (구성은 전체 서비스 및 엔드 포인트에 대한 동작 만 제공)에서 구성된 엔드 포인트에 대한 WSDL 확장입니다. 저는 믿습니다 (그러나 그것을 테스트하지 않았다)이 구성됩니다 유사한 확장 할 수 있습니다 : IEndpointBehaviorApplyDispatchBehavior을 구현합니다 IWsdlExportExtensionExportContract

  • 엔드 포인트 동작을 구현

    • 운영 또는 계약 동작을. ApplyDispatchBehavior에서 계약 동작을 추가하려면 serviceEndpoint.Contract.Behaviors을 사용하고 동작 동작을 추가하려면 serviceEndpoint.Contract.Operations[x].Behaviors을 사용합니다.
    • 구성 파일에서 새 엔드 포인트 작동을 정의하기 위해 비슷한 BehaviorExtensionElement을 작성합니다.
  • +0

    이 답변을 주셔서 감사합니다. 시험을 치르 자마자 의견을 게시하겠습니다. – Mose

    관련 문제