이 항목에서는 Svcutil.exe 다양한 스위치를 사용하여 메타데이터 문서에서 클라이언트를 생성하는 방법을 설명합니다.
메타데이터 문서는 지속성 스토리지에 있거나 온라인으로 검색할 수 있습니다. 온라인 검색은 WS-MetadataExchange 프로토콜 또는 DISCO(Microsoft Discovery) 프로토콜을 따릅니다. Svcutil.exe 다음 메타데이터 요청을 동시에 실행하여 메타데이터를 검색합니다.
제공된 주소에 대한 MEX(WS-MetadataExchange) 요청입니다.
제공된 주소에
/mex
가 추가된 상태로 MEX 요청을 보냅니다.제공된 주소로 ASP.NET 웹 서비스의 DiscoveryClientProtocol를 사용한 DISCO 요청.
Svcutil.exe 서비스에서 받은 WSDL(웹 서비스 설명 언어) 또는 정책 파일을 기반으로 클라이언트를 생성합니다. UPN(사용자 계정 이름)은 사용자 이름을 "@"로 연결한 다음 FQDN(정규화된 도메인 이름)을 추가하여 생성됩니다. 그러나 Active Directory에 등록한 사용자의 경우 이 형식은 유효하지 않으며 도구에서 생성하는 UPN은 다음 오류 메시지와 함께 Kerberos 인증에 실패합니다 . 로그온 시도가 실패했습니다. 이 문제를 해결하려면 도구에서 생성한 클라이언트 파일을 수동으로 수정합니다.
svcutil.exe [/t:code] <metadataDocumentPath>* | <url>* | <epr>
참조 및 공유 형식
옵션 | 설명 |
---|---|
/reference:<파일 경로> | 지정된 어셈블리에서 참조하는 형식들. 클라이언트를 생성할 때 이 옵션을 사용하여 가져올 메타데이터를 나타내는 형식을 포함할 수 있는 어셈블리를 지정합니다. 짧은 형식: /r |
/excludeType:<type> | 참조된 계약 형식에서 제외해야 할 정규화된 형식 또는 어셈블리 정규화된 형식 이름을 지정합니다. 짧은 형식: /et |
직렬 변환기 선택
옵션 | 설명 |
---|---|
/serializer:Auto | 직렬 변환기를 자동으로 선택합니다. 이것은 DataContract 직렬 변환기를 사용합니다. 이 작업이 실패하면 XmlSerializer 사용됩니다.짧은 형식: /ser:Auto |
/serializer:DataContractSerializer |
DataContract serializer를 사용하여 serialization 및 deserialization을 수행하는 데이터 타입을 생성합니다.짧은 형식: /ser:DataContractSerializer |
/serializer:XmlSerializer | serialization 및 deserialization에 XmlSerializer 사용하는 데이터 형식을 생성합니다.짧은 형식: /ser:XmlSerializer |
/importXmlTypes |
DataContract serializer를 구성하여 DataContract 이 아닌 형식을 IXmlSerializable 형식으로 가져옵니다.짧은 형식: /ixt |
/dataContractOnly |
DataContract 형식의 코드만 생성합니다.
ServiceContract 형식이 생성됩니다.이 옵션에는 로컬 메타데이터 파일만 지정해야 합니다. 짧은 형식: /dconly |
클라이언트에 대한 언어 선택
옵션 | 설명 |
---|---|
/language:<언어> | 코드 생성에 사용할 프로그래밍 언어를 지정합니다. Machine.config 파일에 등록된 언어 이름 또는 CodeDomProvider를 상속하는 클래스의 정규화된 이름을 제공합니다. 값: c#, cs, csharp, vb, vbs, visualbasic, vbscript, javascript, c++, mc, cpp 기본값: csharp 짧은 형식: /l 자세한 내용은 클래스를 참조 CodeDomProvider 하세요. |
클라이언트에 대한 네임스페이스 선택
옵션 | 설명 |
---|---|
/namespace:<string,string> | WSDL 또는 XML 스키마 targetNamespace 에서 CLR(공용 언어 런타임) 네임스페이스로의 매핑을 지정합니다.
targetNamespace 에 와일드카드(*)를 사용하면 명시적 매핑 없이 모든 targetNamespaces 가 해당 CLR 네임스페이스로 매핑됩니다.메시지 계약 이름이 작업 이름과 충돌하지 않도록 하려면 형식 참조를 이중 콜론( :: )으로 한정하거나 이름이 고유한지 확인합니다.기본값: 스키마 문서의 DataContracts 대상 네임스페이스에서 파생됩니다. 기본 네임스페이스는 생성된 다른 모든 형식에 사용됩니다.짧은 형식: /n |
데이터 바인딩 선택
옵션 | 설명 |
---|---|
/enableDataBinding | 데이터 바인딩을 INotifyPropertyChanged 사용하도록 설정하기 위해 모든 DataContract 형식에 인터페이스를 구현합니다.짧은 형식: /edb |
구성 생성
옵션 | 설명 |
---|---|
/config:<configFile> | 생성된 구성 파일의 파일 이름을 지정합니다. 기본값: output.config |
/mergeConfig | 생성된 구성을 기존 파일을 덮어쓰는 대신 기존 파일에 병합합니다. |
/noConfig | 구성 파일을 생성하지 마세요. |