<formatter> 元素(实例)
本主题介绍一项传统技术,保留该技术是为了向后兼容现有的应用程序,不建议对新的开发使用该技术。现在应该使用 Windows Communication Foundation (WCF) 来开发分布式应用程序。
包含要插入到信道接收器链中的格式化程序接收器的信道接收器提供程序。此元素可能出现在应用程序配置文件和计算机配置文件中。
此处的格式化程序重写此信道的默认信道接收器链,以成为此信道模板的新默认值。
此处的格式化程序重写此信道的默认信道接收器链,以成为此信道模板的新默认值。
此处的格式化程序重写此信道实例的默认信道接收器链。
此处的格式化程序重写此信道实例的默认信道接收器链。
Schema Hierarchy
<configuration>
<system.runtime.remoting> 元素
<application> 元素
<channels> 元素(实例)
<channel> 元素(实例)
<clientProviders> 元素(实例)
<formatter> 元素(实例)
语法
<formatter
ref="FormatterReference"
type="FormatterSinkProviderType, FormatterAssembly"
customFormatterProperty="customProperty"
includeVersions="true"
strictBinding="false"
...typeFilterLevel="Low | Full"
/>
特性和元素
以下几节描述了特性、子元素和父元素。
特性
特性 | 说明 |
---|---|
ref |
必需的特性。 为客户端想要注册以供使用的格式化程序指定格式化程序接收器提供程序模板的 ID。如果指定 ref 特性,则不需要指定 type 特性。 |
type |
必需的特性。 指定格式化程序接收器提供程序的完整类型名以及包含该提供程序实现的程序集的名称。如果包含程序集位于全局程序集缓存中,则此信息包括所有的版本、区域性和公钥信息。仅当不使用 ref 特性时才需要此特性。 |
customFormatterProperty |
可选的特性。 指示受支持的自定义格式化程序属性。可以指定自定义格式化程序可能支持的任意数目的格式化程序属性。应使用特性/值对指定自定义格式化程序属性。例如: |
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 系列。 |
子元素
无。
父元素
元素 | 说明 |
---|---|
application |
包含有关应用程序使用和公开的远程对象的信息。 |
channel |
包含某信道模板,应用程序可指定并配置该信道模板,以便与远程对象进行通信或侦听对远程对象的请求。在可以注册信道以供使用的任何位置,都可以将该实例信道元素的 id 特性设置为此模板的 ref 特性。 |
channels |
包含应用程序用来与远程对象进行通信的信道模板。在此元素下声明的信道可用于引用注册了信道的任何位置。 |
clientProviders |
包含信道接收器提供程序,当在配置文件中的其他位置引用此信道模板时,这些提供程序将成为该模板的默认客户端信道接收器调用链的一部分。在以下任一位置指定提供程序会重写此信道的默认信道接收器;如果希望将这些默认信道接收器中的任何一个插入到此模板的信道接收器调用链中,也必须在此处指定它们。 |
configuration |
公共语言运行时和 .NET Framework 应用程序所使用的每个配置文件中的根元素。 |
system.runtime.remoting |
包含有关远程对象和信道的信息。 |
备注
可以通过将提供程序模板的 id 值用作此实例的 ref 值来引用该模板。尽管可声明任意数量的模板,但在一个信道接收器调用链中只能存在一个格式化程序接收器。
<formatter> 实例元素可出现在四个位置。当在 <channel> 模板元素(在 <serverProvider> 或 <clientProvider> 元素中)下指定此元素时,它会指定一个格式化程序,该格式化程序在应用程序 <channel> 实例引用信道时将重写任何信道默认格式化程序,以成为该特定信道的默认格式化程序接收器。当在 <application> 元素下指定此元素时,它会重写可能已在当前信道实例或模板中声明的任何格式化程序接收器。
下表描述了在 includeVersions 和 strictBinding 特性同时出现时两者之间进行的交互。
includeVersions(发送格式化程序) | strictBinding(接收格式化程序) | 如何加载类型 |
---|---|---|
true |
true |
加载确切的类型,否则将引发 TypeLoadException。 |
false |
true |
仅使用类型名称和程序集名称加载类型,否则将引发 TypeLoadException。 |
true |
false |
如果存在,则加载确切的类型;否则,仅使用类型名称和程序集名称加载类型。如果加载失败,则将引发 TypeLoadException。 |
false |
false |
仅使用类型名称和程序集名称加载类型,否则将引发 TypeLoadException。 |
示例
下面的配置文件会声明一个 <channel> 实例,该实例使用 <formatter> 实例元素指定默认的 BinaryClientFormatterSinkProvider 在 HttpChannel 中使用二进制序列化。
<configuration>
<system.runtime.remoting>
<application>
<channels>
<channel ref="http">
<clientProviders>
<formatter ref="binary"/>
</clientProviders>
</channel>
</channels>
<client>
<wellknown
url="http://computername:80/RemoteType.rem"
type="RemoteType, RemoteAssembly"
/>
</client>
</application>
</system.runtime.remoting>
</configuration>
另请参见
参考
远程处理设置架构
BinaryClientFormatterSink
SoapClientFormatterSink
BinaryServerFormatterSink
SoapServerFormatterSink
生成日期:2010-02-13