Поделиться через


Элемент <provider> (шаблон)

Этот раздел относится к технологии прежних версий, которая сохраняется для обеспечения обратной совместимости с существующими приложениями и не рекомендуется для разработки новых приложений. Сейчас распределенные приложения следует создавать с помощью  Windows Communication Foundation (WCF).

Содержит шаблон поставщика приемника канала для приемника канала, который вставляется в цепочку приемников канала клиента или сервера. Имеется два варианта иерархии для включения этого элемента. Этот элемент может встречаться в файле конфигурации приложения и в файле конфигурации компьютера.

Schema Hierarchy

<configuration>
  Элемент <system.runtime.remoting>
    Элемент <channelSinkProviders>
      Элемент <clientProviders> (экземпляр)
        Элемент <provider> (шаблон)

Синтаксис

<provider  
   id="ProviderID" 
   type="ProviderType, ProviderAssembly"    
   customChannelSinkProperty="customProperty"
/>

Атрибуты и элементы

В следующих разделах описываются атрибуты, дочерние и родительские элементы.

Атрибуты

Атрибут Описание

id

Обязательный атрибут.

Задает строку, идентифицирующую данный поставщик приемника канала. Для привязки к данному поставщику приемника канала также можно использовать эту строку в атрибуте ref.

type

Обязательный атрибут.

Задает полное имя типа поставщика приемников каналов и имя сборки, содержащей реализацию поставщика. Включает сведения о версии, языке и региональных параметрах, а также об открытом ключе, если соответствующая сборка принадлежит к глобальному кэшу сборок.

customChannelSinkProperty

Необязательный атрибут.

Задает поддерживаемое свойство пользовательского приемника каналов. Можно задать любое количество свойств поставщиков и приемников каналов, которые могут поддерживаться поставщиками пользовательских приемников и соответствующими приемниками. Для свойства пользовательского приемника каналов задается пара "атрибут-значение". В данном примере:

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

Атрибут customChannelSinkProperty и его значение доступны в атрибуте IDictionary в конструкторе поставщика.

Здесь также можно задать данные поставщика пользовательских приемников. Поддерживается только один уровень узлов. В данном примере:

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

Дополнительные сведения доступны в виде ICollection объекта SinkProviderData в конструкторе поставщика.

Дочерние элементы

Нет.

Родительские элементы

Элемент Описание

channelSinkProviders

Содержит шаблоны для поставщиков приемников каналов клиента и сервера. На любой поставщик приемника канала, заданный в этом элементе, можно ссылаться везде, где можно регистрировать поставщики приемников каналов.

clientProviders

Содержит поставщики для приемников каналов, которые должны стать частью установленной по умолчанию цепочки вызовов приемника канала на стороне клиента для этого шаблона канала, когда он упоминается в другом месте файла конфигурации. Указание поставщиков в любой из следующих позиций переопределяет принятые по умолчанию приемники канала для данного канала; если предполагается добавить любые из принятых по умолчанию приемники каналов в цепочку вызовов приемника канала, необходимо указать их здесь.

configuration

Корневой элемент в любом файле конфигурации, используемом средой CLR и приложениями платформы .NET Framework.

system.runtime.remoting

Содержит сведения об удаленных объектах и каналах.

Примеры

В следующем файле конфигурации используется элемент экземпляра <provider>, чтобы присвоить объекту HttpChannel поставщики приемника канала propsetter и null, которые были объявлены в элементах шаблона <provider>. Кроме того, поставщик приемника канала "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>

См. также

Справочник

Схема параметров удаленного взаимодействия

Основные понятия

Приемники и цепочки приемников

Дата сборки: 2010-02-13