Элемент <provider> (экземпляр)
Этот раздел относится к технологии прежних версий, которая сохраняется для обеспечения обратной совместимости с существующими приложениями и не рекомендуется для разработки новых приложений. Сейчас распределенные приложения следует создавать с помощью Windows Communication Foundation (WCF).
Содержит поставщик приемников каналов для приемника канала, который вставляется в цепочку приемников канала.
<provider/>
Поставщики могут переопределять принятые по умолчанию поставщики сервера, чтобы данный канал стал новым каналом по умолчанию для этого шаблона канала.
<provider/>
Поставщики могут переопределять принятые по умолчанию поставщики клиента, чтобы данный канал стал новым каналом по умолчанию для этого шаблона канала.
<provider/>
Поставщики сервера могут переопределять принятые по умолчанию поставщики для данного экземпляра канала.
<provider/>
Поставщики клиента могут переопределять принятые по умолчанию поставщики для данного экземпляра канала.
<provider
ref="ProviderTemplateReference"
type="ProviderType, ProviderAssembly"
customChannelSinkProperty="customProperty"
/>
Необязательные атрибуты
Атрибут | Описание |
---|---|
customChannelSinkProperty |
Задает поддерживаемое свойство пользовательского приемника каналов. Можно задать любое количество свойств поставщиков и приемников каналов, которые могут поддерживаться поставщиками пользовательских приемников и соответствующими приемниками. Для свойства пользовательского приемника каналов задается пара "атрибут-значение". В данном примере:
Атрибут Здесь также можно задать данные поставщика пользовательских приемников. Поддерживается только один уровень узлов. В данном примере:
Дополнительные сведения доступны в виде 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