Share via


<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>

该额外信息将可用作提供程序构造函数中 SinkProviderDataICollection

子元素

无。

父元素

元素 说明

channelSinkProviders

包含客户端和服务器信道接收器提供程序的模板。在可能注册信道接收器提供程序的任何地方都可以引用此元素下指定的任何信道接收器提供程序。

clientProviders

包含信道接收器提供程序,当在配置文件中的其他位置引用此信道模板时,这些提供程序将成为该模板的默认客户端信道接收器调用链的一部分。在以下任一位置指定提供程序会重写此信道的默认信道接收器;如果希望将这些默认信道接收器中的任何一个插入到此模板的信道接收器调用链中,也必须在此处指定它们。

configuration

公共语言运行时和 .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