2009-03-12 1 views
2

여러분,svcutil이 C# 파일에서 문서를 선택하게 하시겠습니까?

새로운 WCF 서비스를 만들고 서비스 인터페이스로 시작했습니다. 지금, 나는 또한 SomethingRequest 및 SomethingResponse 메시지를 설명하는 다른 파일의 일부 데이터 계약을 생성

public interface ISomethingService 
    { 
     /// <summary> 
     /// some description 
     /// </summary> 
     /// <version>2.13.0</version> 
     /// <copyright>2009 by myself</copyright> 
     /// <author>Marc Scheuner</author> 
     /// <param name="request">The request object</param> 
     [OperationContract] 
     SomethingResponse GetList(SomethingRequest request); 
    } 

: 같이 보입니다.

내 프로젝트를 컴파일하고 svcutil.exe를 실행하여 DLL에서 메타 데이터 (WSDL 및 XSD)를 추출했지만 WSDL에 대한 모든 설명과 설명을 얻을 수있는 방법이 있는지 알 수 없습니다./XSD를/노드에 추가하십시오.

또 다른 애매한 svcutil.exe 매개 변수에 대해 눈이 멀었습니까? 아니면 자동으로 메타 데이터에이 문서를 생성 할 방법이 없습니까?

편집 : OK, Marc Gravell의 답변에 따르면 주석과 설명서 문자열은 컴파일 된 DLL에 없으며 MEX 메타 데이터 교환 프로토콜 (pity!)을 통해 사용할 수 없습니다.

그렇다면 서비스에 액세스하는 데 필요한 정보를 제 3 자에게 제공해야한다면 어떻게 WCF 서비스를 문서화합니까? WCF 서비스 라이브러리를 검색하고 주석을 포함하여 소스 코드에서 WSDL 및 XSD를 구성하는 "NService"또는 "WCF 용 Sandcastle"도구가 있습니까 ?? ,

답변

3

svcutil.exe에가 "MEX"API를 소모 .... 솔직히 내 큰 놀라움에

마크를 -

도구와이 작업을 수행하는 방법의 전체를 많이 찾을 수 없습니다 메타 데이터의 하위 집합에만 액세스 할 수 있습니다. 의견은 포함되어 있지 않습니다 (IIRC도 상당 부분은 [DescriptionAttribute]).

외부 문서 (예 : 도움말 페이지/죽은 나무)를 사용해야 할 수도 있습니다. 하나의 다른 옵션 (순수한 SOA 규칙의 수를 깨기는하지만)은 엔티티/인터페이스를 dll + xml로 제공하는 것입니다. svcutil (및 IDE)은 기존 어셈블리에서 일치 유형을 재사용 할 수 있습니다.

+0

감사합니다. 그렇다면 누구나 서비스 라이브러리의 소스를 구문 분석하고 해당 클래스에서 주석이 달린 WSDL과 XSD를 생성하는 VS 플러그인을 알고 있습니까? –

관련 문제