다음을 통해 공유


메타데이터 내보내기 및 가져오기

WCF(Windows Communication Foundation)에서 메타데이터 내보내기는 서비스 엔드포인트를 설명하고 클라이언트가 서비스를 사용하는 방법을 이해하는 데 사용할 수 있는 병렬 표준화된 표현으로 프로젝션하는 프로세스입니다. 서비스 메타데이터 가져오기는 서비스 메타데이터에서 인스턴스 또는 파트를 ServiceEndpoint 생성하는 프로세스입니다.

메타데이터 내보내기

인스턴스에서 System.ServiceModel.Description.ServiceEndpoint 메타데이터를 내보내려면 추상 클래스의 구현을 MetadataExporter 사용합니다. 이 WsdlExporter 형식은 WCF에 MetadataExporter 포함된 추상 클래스의 구현입니다.

System.ServiceModel.Description.WsdlExporter 유형은 MetadataSet 인스턴스를 사용하여 연결된 정책 표현이 포함된 웹 서비스 설명 언어(WSDL) 메타데이터를 생성합니다. System.ServiceModel.Description.WsdlExporter 인스턴스를 사용하여 ContractDescription 메타데이터를 ServiceEndpoint 및 개체에 대해 반복적으로 내보낼 수 있습니다. 개체 컬렉션을 ServiceEndpoint 내보내고 특정 서비스 이름과 연결할 수도 있습니다.

비고

WsdlExporter 인스턴스에서 CLR(공용 언어 런타임) 형식 정보를 포함하는 메타데이터를 내보내는 데 ContractDescription만 사용할 수 있습니다. 이는 ContractDescription 메서드를 사용하여 생성된 ContractDescription.GetContract 인스턴스 또는 ServiceDescription 인스턴스의 일부로 생성된 ServiceHost 인스턴스를 포함합니다. 서비스 메타데이터에서 가져오거나 형식 정보 없이 생성된 인스턴스에서 WsdlExporter 메타데이터를 내보내는 데는 사용할 ContractDescription 수 없습니다.

메타데이터 가져오기

WSDL 문서 가져오기

WCF에서 서비스 메타데이터를 가져오려면 추상 클래스의 구현을 MetadataImporter 사용합니다. 이 System.ServiceModel.Description.WsdlImporter 형식은 WCF에 MetadataImporter 포함된 추상 클래스의 구현입니다. WsdlImporter 유형은 MetadataSet 개체에 포함된 연결된 정책과 함께 WSDL 메타데이터를 가져옵니다.

이 형식을 WsdlImporter 사용하면 메타데이터를 가져오는 방법을 제어할 수 있습니다. 모든 엔드포인트, 모든 바인딩 또는 모든 계약을 가져올 수 있습니다. 특정 WSDL 서비스, 바인딩 또는 포트 유형과 연결된 모든 엔드포인트를 가져올 수 있습니다. 특정 WSDL 포트, 특정 WSDL 바인딩에 대한 바인딩 또는 특정 WSDL 포트 형식에 대한 계약에 대한 엔드포인트를 가져올 수도 있습니다.

WsdlImporter 또한 가져올 필요가 없는 계약 집합을 지정할 수 있는 속성을 노출 KnownContracts 합니다. WsdlImporter는 메타데이터에서 같은 정규화된 이름의 계약을 가져오지 않고 KnownContracts 속성에 있는 계약을 사용합니다.

정책 가져오기

형식은 WsdlImporter 메시지, 작업 및 엔드포인트 정책 주체에 연결된 정책 식을 수집한 다음 컬렉션의 IPolicyImportExtensionPolicyImportExtensions 구현을 사용하여 정책 식을 가져옵니다.

정책 가져오기 논리는 동일한 WSDL 문서의 정책 식에 대한 정책 참조를 자동으로 처리하고 또는 wsu:Idxml:id 특성으로 식별됩니다. 정책 가져오기 논리는 정책 식의 크기를 4096 노드로 제한하여 순환 정책 참조로부터 애플리케이션을 보호합니다. 여기서 노드는 다음 요소 wsp:Policywsp:Allwsp:ExactlyOnewsp:policyReference중 하나입니다.

또한 정책 가져오기 논리는 정책 식을 자동으로 정규화합니다. 중첩된 정책 식 및 wsp:Optional 특성은 정규화되지 않습니다. 정규화 처리의 양은 4096단계로 제한되며, 각 단계에서는 정책 어설션 또는 요소의 wsp:ExactlyOne 자식 요소를 생성합니다.

이 형식은 WsdlImporter 다른 WSDL 정책 주체에 연결된 정책 대안의 조합을 최대 32개까지 시도합니다. 새로 가져오는 조합이 없는 경우 첫 번째 조합은 부분 사용자 지정 바인딩을 생성하는 데 사용됩니다.

오류 처리

MetadataExporter MetadataImporter 두 형식은 각각 내보내기 및 가져오기 프로세스 중에 발생한 오류 및 경고 메시지 컬렉션을 포함할 수 있는 속성을 노출 Errors 하며 도구를 구현할 때 사용할 수 있습니다.

WsdlImporter 형식은 일반적으로 가져오기 프로세스 중에 잡힌 예외에 대해 예외를 throw하고, 그 오류를 자신의 Errors 속성에 추가합니다. ImportAllContracts, ImportAllBindings, ImportAllEndpoints, 및 ImportEndpoints 메서드는 이러한 예외를 throw하지 않으므로, 이 메서드를 호출할 때 문제가 발생했는지 확인하려면 Errors 속성을 확인해야 합니다.

내보내기 프로세스 중에 발생한 모든 예외를 이 형식의 WsdlExporter가 다시 throw합니다. 이러한 예외는 속성에서 Errors 오류로 캡처되지 않습니다. 예외가 WsdlExporter에서 발생하면, 결함 상태가 되어 다시 사용할 수 없습니다. WsdlExporter 와일드카드 작업을 사용하고 중복 바인딩 이름이 발견되면 작업을 내보낼 수 없는 경우 해당 Errors 속성에 경고를 추가합니다.

이 섹션 안에

방법: 메타데이터를 서비스 엔드포인트로 가져오기
다운로드한 메타데이터를 설명 개체로 가져오는 방법을 설명합니다.

방법: 서비스 엔드포인트에서 메타데이터 내보내기
설명 개체를 메타데이터로 내보내는 방법을 설명합니다.

ServiceDescription 및 WSDL 참조
설명 개체와 WSDL 간의 매핑에 대해 설명합니다.

방법: Svcutil.exe 사용하여 컴파일된 서비스 코드에서 메타데이터 내보내기
Svcutil.exe 사용하여 컴파일된 어셈블리의 서비스, 계약 및 데이터 형식에 대한 메타데이터를 내보내는 방법을 설명합니다.

데이터 계약 스키마 참조
XML serialization에 대한 CLR(공용 언어 런타임) 형식을 설명하는 데 사용되는 DataContractSerializer XSD(XML 스키마)의 하위 집합에 대해 설명합니다.

참고 문헌

WsdlExporter

WsdlImporter

참고하십시오