다음을 통해 공유


<formatter> 요소(템플릿)

이 항목은 이전 버전의 기존 응용 프로그램과의 호환성을 위해 유지되고 있으나 새로운 개발에는 권장되지 않는 레거시 기술에 대해 설명합니다. 분산 응용 프로그램은 이제 WCF(Windows Communication Foundation)를 사용하여 개발됩니다.

서버 또는 클라이언트 채널 싱크 체인에 삽입할 포맷터 싱크의 채널 싱크 공급자를 포함합니다. 이 요소를 포함시킬 때는 두 가지 계층 구조를 사용할 수 있습니다.

<configuration>

<system.runtime.remoting>

<channelSinkProviders>

<clientProviders>

<formatter>

여기에 지정하는 포맷터 공급자는 <formatter> 인스턴스에서 사용하는 템플릿이 됩니다.

<configuration>

<system.runtime.remoting>

<channelSinkProviders>

<serverProviders>

<formatter>

여기에 지정하는 포맷터 공급자도 <formatter> 인스턴스에서 사용하는 템플릿이 됩니다.

<formatter  
   id="FormatterID"
   type="FormatterSinkProviderType, FormatterAssembly"
   customFormatterProperty="customProperty"
   includeVersions="true"
   strictBinding="false"
...typeFilterLevel="Low | Full"
/>

선택적 특성

특성 설명

customFormatterProperty

지원되는 사용자 지정 채널 싱크 속성을 나타냅니다. 사용자 지정 채널 싱크 공급자와 해당 공급자 싱크에서 지원하는 공급자 및 채널 싱크 속성 수는 원하는 만큼 지정할 수 있습니다. 사용자 지정 채널 싱크 속성에는 특성/값 쌍이 지정됩니다. 예제:

<provider id="CustomChannelSinkProvider" type="Namespace.CustomChannelSinkProvider, CustomChannels" customChannelSinkProperty="ChannelSinkPropertyValue"/>

이 예제에서 customChannelSinkProperty 특성과 그 값은 공급자의 생성자에 있는 IDictionary 인수로 사용할 수 있습니다.

여기에 사용자 지정 싱크 공급자 데이터도 지정할 수 있는데, 한 수준의 노드만 지원됩니다. 예제:

<provider ref="custom">
<extra data="value"/>
<extra data="AnotherValue"/>
</provider>

이 예제에서 추가 정보는 공급자의 생성자에서 SinkProviderDataICollection으로 사용할 수 있습니다.

includeVersions

형식 정보를 serialize할 때, 보내는 포맷터에 완전한 형식 및 어셈블리 버전 정보가 포함되어 있음을 나타냅니다. 중요한 상세 정보는 아래 설명 부분을 참조하십시오. 시스템이 제공한 양쪽 포맷터에 대한 기본값은 true입니다.

strictBinding

버전 정보 없이 형식 이름 및 어셈블리 이름만을 사용하기 전에 버전 정보가 존재하는 경우, 받는 포맷터가 먼저 완벽한 버전 정보를 사용하여 형식을 식별함을 나타냅니다. 중요한 상세 정보는 아래 설명 부분을 참조하십시오. 시스템이 제공한 양쪽 포맷터에 대한 기본값은 false입니다.

typeFilterLevel

서버 채널 싱크 체인의 포맷터가 시도하는 자동 deserialization의 수준을 지정하는 문자열 값입니다. 지원되는 값은 Low(기본값) 및 Full입니다. deserialization 수준에 대한 자세한 내용은 .NET Remoting에서의 자동 deserialization을 참조하십시오.

이 속성은 Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 제품군의 .NET Framework 버전 1.1에서만 지원됩니다.

필수 특성

특성 설명

id

이 포맷터 싱크 공급자를 식별하는 문자열입니다. 다른 요소에서 이 문자열을 해당 ref 특성에 사용하여 이 포맷터 싱크 공급자에 바인딩할 수도 있습니다.

type

포맷터 싱크 공급자의 전체 형식 이름 및 공급자 구현이 들어 있는 어셈블리의 이름을 지정합니다. 포함하는 어셈블리가 전역 어셈블리 캐시에 있는 경우 버전, 문화권 및 공개 키 정보도 여기에 포함됩니다.

설명

여기에 지정하는 포맷터는 이 구성 파일 또는 동일한 응용 프로그램에서 로드하는 다른 구성 파일의 다른 위치에 있는 <formatter> 인스턴스 요소에서 참조할 수 있습니다.

다음 표에서는 includeVersionsstrictBinding 특성이 함께 나올 때 이 특성 사이의 상호 작용에 대해 설명합니다.

includeVersions(보내는 포맷터) strictBinding(받는 포맷터) 형식을 로드하는 방법

true

true

정확한 형식이 로드되거나 TypeLoadException이 throw됩니다.

false

true

형식 이름이나 어셈블리 이름만을 사용하여 형식이 로드되거나 TypeLoadException이 throw됩니다.

true

false

정확한 형식이 있으면 로드됩니다. 없으면 형식 이름과 어셈블리 이름만 사용하여 형식이 로드됩니다. 실패하는 경우 TypeLoadException이 throw됩니다.

false

false

형식 이름과 어셈블리 이름만을 사용하여 형식이 로드되거나 TypeLoadException이 throw됩니다

예제

다음 구성 파일에서는 <clientProviders> 인스턴스를 사용하므로, 해당 채널에서 사용할 포맷터 및 공급자를 모두 지정해야 합니다. 이 예제에서 <formatter> 요소는 SoapClientFormatterSink를 참조하며, <provider> 인스턴스 요소를 사용하여 <provider> 템플릿 요소로 선언된 "propsetter" 및 "null" 채널 싱크 공급자를 HttpChannel에 할당합니다. 여기에서 "propsetter" 채널 싱크 공급자는 공급자 인스턴스 요소의 특성 및 자식 <endpoint> 특성의 이름/값 쌍으로 지정된 사용자 지정 공급자 속성을 사용하여 만들어집니다.

<configuration>
   <system.runtime.remoting>
      <application>
         <client>
            <wellknown 
               type="RemoteType, RemoteAssembly"
               url="http://computername:8080/RemoteType.rem"/>
         </client>
         <channels>
            <channel ref="http">
               <clientProviders>
                  <formatter ref="soap"/>
                  <provider 
                     ref="propsetter" 
                     username="bob" 
                     writeToConsole="true"
                  >
                     <endpoint url="contoso.com:9000" someProperty="xyz" />
                     <endpoint url="contoso.com:9001" someProperty="123" />
                  </provider>
                  <provider ref="null" writeToConsole="true" />
               </clientProviders>
            </channel>
         </channels>
      </application>
      <channelSinkProviders>
         <clientProviders>
            <provider 
               id="propsetter" 
               type="ChannelSinkPropertySetterProvider, SinkAssembly" 
            />
            <provider 
               id="null" 
               type="NullSinkProvider, SinkAssembly" 
            />
         </clientProviders>
      </channelSinkProviders>
      <debug loadTypes="true" />
   </system.runtime.remoting>
</configuration>

요구 사항

구성 파일: 응용 프로그램 구성 파일, 컴퓨터 구성 파일(Machine.config)

참고 항목

참조

원격 설정 스키마
BinaryClientFormatterSink
SoapClientFormatterSink
BinaryServerFormatterSink
SoapServerFormatterSink

빌드 날짜: 2010-02-13