Share via


<provider> 元素(实例)

本主题介绍一项传统技术,保留该技术是为了向后兼容现有的应用程序,不建议对新的开发使用该技术。现在应该使用  Windows Communication Foundation (WCF) 来开发分布式应用程序。

包含要插入到信道接收器链中的信道接收器的信道接收器提供程序。

<configuration>

   <system.runtime.remoting>

      <channels>

         <channel>

            <serverProviders>

               <provider/>

此处的提供程序重写此信道的默认服务器提供程序,以成为此信道模板的新的默认服务器提供程序。

<configuration>

   <system.runtime.remoting>

      <channels>

         <channel>

            <clientProviders>

               <provider/>

此处的提供程序重写此信道的默认客户端提供程序,以成为此信道模板的新的默认客户端提供程序。

<configuration>

   <system.runtime.remoting>

      <application>

         <channels>

            <channel>

               <serverProviders>

                  <provider/>

此处的服务器提供程序重写此信道实例的默认提供程序。

<configuration>

   <system.runtime.remoting>

      <application>

         <channels>

            <channel>

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

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

必需的特性

特性 说明

type

指定信道接收器提供程序的完整类型名以及包含该提供程序实现的程序集的名称。如果包含程序集位于全局程序集缓存中,则此信息包括所有的版本、区域性和公钥信息。仅当不使用 ref 特性时才需要此特性。

ref

为客户端想要注册以供使用的信道接收器指定信道接收器提供程序模板的 ID。如果指定 ref 特性,则不需要指定 type 特性。

备注

通过为此实例的 ref 特性提供另一个提供程序模板的 id 值引用该模板。指定提供程序会重写任何默认提供程序;如果希望在信道接收器调用链中调用其他提供程序,则必须在此处指定它们。

<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