Элемент <provider> (экземпляр)

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

Содержит поставщик приемников каналов для приемника канала, который вставляется в цепочку приемников канала.

<конфигурация>

   <system.runtime.remoting>

      <каналы>

         <канал>

            <serverProviders>

               <provider/>

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

<конфигурация>

   <system.runtime.remoting>

      <каналы>

         <канал>

            <clientProviders>

               <provider/>

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

<конфигурация>

   <system.runtime.remoting>

      <application>

         <каналы>

            <канал>

               <serverProviders>

                  <provider/>

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

<конфигурация>

   <system.runtime.remoting>

      <application>

         <каналы>

            <канал>

               <clientProviders>

                  <provider/>

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

<provider 
    ref="ProviderTemplateReference"
   type="ProviderType, ProviderAssembly"
   customChannelSinkProperty="customProperty"
/>

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

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

customChannelSinkProperty

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

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

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

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

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

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

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

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

type

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

ref

Задает ИД шаблона поставщика приемников каналов для приемника канала, который клиент планирует зарегистрировать и использовать. Если атрибут ref задан, задавать атрибут type не требуется.

Замечания

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

Экземпляры элемента <provider> могут указываться в четырех местах. При указании внутри элемента шаблона <channel> (в элементе <serverProviders> или <clientProviders>) данный элемент задает поставщик, который будет поставщиком приемника по умолчанию для конкретного канала, если на него ссылается экземпляр приложения. При указании в элементе <application> он переопределяет приемники по умолчанию, которые могли быть настроены для данного канала, если он был в шаблоне. Другие поставщики, которые предполагается использовать в цепочке вызовов, следует указывать здесь, поскольку это позволяет переопределить все поставщики, заданные по умолчанию в каких-либо шаблонах.

Примеры

В следующем файле конфигурации используется элемент экземпляра <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>

Системные требования

Файл конфигурации: файл конфигурации приложения, файл конфигурации компьютера (Machine.config)

См. также

Справочник

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

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

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

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