ComContractElement.UserDefinedTypes 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
서비스 계약에 포함할 UDT(사용자 정의 형식) 컬렉션을 가져옵니다. 이 클래스는 상속할 수 없습니다.
public:
property System::ServiceModel::Configuration::ComUdtElementCollection ^ UserDefinedTypes { System::ServiceModel::Configuration::ComUdtElementCollection ^ get(); };
[System.Configuration.ConfigurationProperty("userDefinedTypes")]
public System.ServiceModel.Configuration.ComUdtElementCollection UserDefinedTypes { get; }
[<System.Configuration.ConfigurationProperty("userDefinedTypes")>]
member this.UserDefinedTypes : System.ServiceModel.Configuration.ComUdtElementCollection
Public ReadOnly Property UserDefinedTypes As ComUdtElementCollection
속성 값
UDT(사용자 정의 형식) 컬렉션입니다.
- 특성
예제
다음 예제에서는 이 목적을 위해 구성 파일의 섹션에 <userDefinedTypes> 두 개의 특정 UDT를 추가하는 방법을 보여 줍니다.
<comContracts>
<comContract contract="{5163B1E7-F0CF-4B6A-9A02-4AB654F34284}"
namespace="http://tempuri.org/5163B1E7-F0CF-4B6A-9A02-4AB654F34284"
name="_Broker" requiresSession="true">
<userDefinedTypes>
<userDefinedType name="CustomerType"
typeLibID="{91DC728C-4F1A-45de-A9B6-B538E209CEA6}"
typeLibVersion="1.0"
typeDefID="{D129765C-F211-434e-825A-9A63198C41F2}" />
<userDefinedType name="AddressType"
typeLibID="{91DC728C-4F1A-45de-A9B6-B538E209CEA6}"
typeLibVersion="1.0"
typeDefID="{4616AE0D-687A-43B7-BC63-141AE3DFD099}" />
</userDefinedTypes>
<exposedMethods>
<add exposedMethod ="BuyStock" />
<add exposedMethod ="SellStock" />
<add exposedMethod ="ExecuteTransaction" />
</exposedMethods>
</comContract>
</comContracts>
요소의 <userDefinedType> 특성은 다음과 같이 정의됩니다.
typeName: 읽을 수 있는 형식 이름을 제공하는 선택적 특성입니다. 이는 런타임에서 사용되지 않지만 판독기에서 형식을 구분하는 데 도움이 됩니다.typeLibID: 형식을 정의하는 등록된 형식 라이브러리를 지정하는 GUID 문자열입니다.typeLibVersion: 형식을 정의하는 형식 라이브러리 버전을 지정하는 문자열입니다.typeDefID: 등록된 형식 라이브러리 내의 특정 UDT 형식을 지정하는 GUID 문자열입니다.
서비스가 초기화되면 통합 런타임은 지정된 형식을 조회하여 지정된 계약의 알려진 형식 컬렉션에 추가합니다.
설명
COM+ 통합 런타임은 형식 라이브러리를 검사하여 서비스를 만듭니다. COM+ 구성 요소에 VARIANT를 전달하는 메서드가 포함되어 있으면 시스템에서 런타임 전에 전달될 실제 형식을 확인할 수 없습니다. 따라서 VARIANT 내에서 UDT(사용자 정의 형식)를 전달하려고 하면 serialization에 대해 알려진 형식이 아니므로 실패합니다.
이 문제를 피하기 위해 구성 파일에 UDT를 추가하여 적절한 서비스 계약에 알려진 형식으로 포함할 수 있습니다. 이렇게 하려면 UDT 및 계약을 사용하는 원래 COM 인터페이스인 계약을 고유하게 식별해야 합니다.