Элемент <formatter> (шаблон)
Этот раздел относится к технологии прежних версий, которая сохраняется для обеспечения обратной совместимости с существующими приложениями и не рекомендуется для разработки новых приложений. Сейчас распределенные приложения следует создавать с помощью Windows Communication Foundation (WCF).
Содержит поставщик приемника канала для приемника модуля форматирования, который вставляется в цепочку приемников канала клиента или сервера. Имеется два варианта иерархии для включения этого элемента.
<formatter>
Заданный здесь поставщик модуля форматирования становится шаблоном для использования экземплярами <formatter>.
<formatter>
Заданный здесь поставщик модуля форматирования также становится шаблоном для использования экземплярами <formatter>.
<formatter
id="FormatterID"
type="FormatterSinkProviderType, FormatterAssembly"
customFormatterProperty="customProperty"
includeVersions="true"
strictBinding="false"
...typeFilterLevel="Low | Full"
/>
Необязательные атрибуты
Атрибут | Описание |
---|---|
customFormatterProperty |
Задает поддерживаемое свойство пользовательского приемника каналов. Можно задать любое количество свойств поставщиков и приемников каналов, которые могут поддерживаться поставщиками пользовательских приемников и соответствующими приемниками. Для свойства пользовательского приемника каналов задается пара "атрибут-значение". В данном примере:
Атрибут Здесь также можно задать данные поставщика пользовательских приемников. Поддерживается только один уровень узлов. В данном примере:
Дополнительные сведения доступны в виде ICollection объекта SinkProviderData в конструкторе поставщика. |
includeVersions |
Указывает, что отправляющий модуль форматирования при сериализации сведений о типе включает полные сведения о типе и версии сборки. Важные сведения см. ниже в разделе "Заметки". Для обоих предоставляемых системой модулей форматирования значение по умолчанию — true. |
strictBinding |
Указывает, что принимающий модуль форматирования сначала попробует определить тип при помощи полных сведений о версии, если они имеются, а лишь затем будет использовать только имя типа и имя сборки без сведений о версии. Важные сведения см. ниже в разделе "Заметки". Для обоих предоставляемых системой модулей форматирования значение по умолчанию — false. |
typeFilterLevel |
Строковое значение, задающее уровень автоматической десериализации, которую пытается выполнить модуль форматирования в серверной цепочке приемников канала. Поддерживаемые значения: Low (по умолчанию) и Full. Дополнительные сведения об уровнях десериализации см. в разделе Автоматическая десериализация при удаленном взаимодействии .NET. Это свойство поддерживается только в .NET Framework версии 1.1 на следующих платформах: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional и в семействе Windows Server 2003. |
Обязательные атрибуты
Атрибут | Описание |
---|---|
id |
Задает строку, идентифицирующую поставщик приемника данного модуля форматирования. Для привязки к поставщику приемника данного модуля форматирования также можно использовать строку в атрибуте ref. |
type |
Задает полное имя типа поставщика приемника модуля форматирования и имя сборки, содержащей реализацию поставщика. Включает сведения о версии, языке и региональных параметрах, а также об открытом ключе, если соответствующая сборка принадлежит к глобальному кэшу сборок. |
Замечания
Ссылка на задаваемый здесь модуль форматирования может содержаться в элементе экземпляра <formatter> в любом месте этого или другого файла конфигурации, загружаемого этим же приложением.
В следующей таблице приводится описание взаимосвязи между атрибутами includeVersions и strictBinding, если они указываются вместе.
includeVersions (отправляющий модуль форматирования) | strictBinding (принимающий модуль форматирования) | Загрузка типа |
---|---|---|
true |
true |
Загружается точный тип или создается исключение TypeLoadException. |
false |
true |
Тип загружается с использованием только имени типа и имени сборки или создается исключение TypeLoadException. |
true |
false |
Загружается точный тип, если он имеется; в противном случае тип загружается с использованием только имени типа и имени сборки. Если загрузить тип не удается, создается исключение TypeLoadException. |
false |
false |
Тип загружается с использованием только имени типа и имени сборки или создается исключение TypeLoadException. |
Примеры
Поскольку в приведенном ниже файле конфигурации используются экземпляры <clientProviders>, необходимо задать все модули форматирования и поставщики, которые должны использоваться каналом. В данном случае элемент <formatter> содержит ссылку на объект SoapClientFormatterSink и использует элемент экземпляра <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)
См. также
Справочник
Схема параметров удаленного взаимодействия
BinaryClientFormatterSink
SoapClientFormatterSink
BinaryServerFormatterSink
SoapServerFormatterSink
Дата сборки: 2010-02-13