﻿<?xml version="1.0" encoding="utf-8"?><Type Name="ChannelServices" FullName="System.Runtime.Remoting.Channels.ChannelServices"><TypeSignature Maintainer="auto" Language="C#" Value="public sealed class ChannelServices" /><TypeSignature Language="ILAsm" Value=".class public auto ansi sealed beforefieldinit ChannelServices extends System.Object" /><AssemblyInfo><AssemblyName>mscorlib</AssemblyName><AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00]</AssemblyPublicKey><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the &lt;link location="node:gtk-sharp/programming/threads"&gt;Gtk# Thread Programming&lt;/link&gt; for details.</ThreadSafetyStatement><Base><BaseTypeName>System.Object</BaseTypeName></Base><Interfaces /><Attributes><Attribute><AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName></Attribute></Attributes><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Channels transport messages between applications across such remoting boundaries as application domains, processes, and computers. These crossings can be inbound and outbound. A channel can listen on an endpoint for inbound messages, send to an endpoint for outbound messages, or both. This provides an extensibility point in the runtime to plug in a wide range of protocols, even though the runtime might not be at the other end of the channel. Run-time objects can be used to expose a wide range of semantics and entities. The channel provides the extensibility point to convert the messages to and from the specific protocols.</para><para>Channels must expose the <see cref="T:System.Runtime.Remoting.Channels.IChannel" /> interface, which provides informational properties such as the <see cref="P:System.Runtime.Remoting.Channels.IChannel.ChannelName" /> and <see cref="P:System.Runtime.Remoting.Channels.IChannel.ChannelPriority" />. Channels are registered using the <see cref="M:System.Runtime.Remoting.Channels.ChannelServices.RegisterChannel(System.Runtime.Remoting.Channels.IChannel)" /> method. Channels can also be loaded from the remoting configuration. (See <format type="text/html"><a href="73399D48-F0FD-46E9-828B-6CDAFDE5FFCE">[&lt;topic://gnconchanneltemplate&gt;]</a></format> for details.) </para><para>On the client side, messages are handed off to the client channel sink chain after they traverse the client <see cref="T:System.Runtime.Remoting.Contexts.Context" /> chain. The first channel sink is typically a <see cref="T:System.Runtime.Remoting.Channels.IClientFormatterSink" />, which serializes the message into a stream that is passed down the channel sink chain to the client transport sink. The client transport sink then writes this stream out to the wire.</para><para>On the server side, the server transport sink reads requests off the wire and passes the request stream to the server channel sink chain. The server formatter sink at the end of this chain will deserialize the request into a message. It will then hand this message off to the remoting infrastructure, which will dispatch it to the server <see cref="T:System.Runtime.Remoting.Contexts.Context" /> chain.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Provides static methods to aid with remoting channel registration, resolution, and URL discovery. This class cannot be inherited.</para></summary></Docs><Members><Member MemberName="AsyncDispatchMessage"><MemberSignature Language="C#" Value="public static System.Runtime.Remoting.Messaging.IMessageCtrl AsyncDispatchMessage (System.Runtime.Remoting.Messaging.IMessage msg, System.Runtime.Remoting.Messaging.IMessageSink replySink);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Runtime.Remoting.Messaging.IMessageCtrl AsyncDispatchMessage(class System.Runtime.Remoting.Messaging.IMessage msg, class System.Runtime.Remoting.Messaging.IMessageSink replySink) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Runtime.Remoting.Messaging.IMessageCtrl</ReturnType></ReturnValue><Parameters><Parameter Name="msg" Type="System.Runtime.Remoting.Messaging.IMessage" /><Parameter Name="replySink" Type="System.Runtime.Remoting.Messaging.IMessageSink" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The current method returns immediately, whether the server processed the specified message or not.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Asynchronously dispatches the given message to the server-side chain(s) based on the URI embedded in the message.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A <see cref="T:System.Runtime.Remoting.Messaging.IMessageCtrl" /> object used to control the asynchronously dispatched message.</para></returns><param name="msg"><attribution license="cc4" from="Microsoft" modified="false" />The message to dispatch. </param><param name="replySink"><attribution license="cc4" from="Microsoft" modified="false" />The sink that will process the return message if it is not null. </param></Docs></Member><Member MemberName="CreateServerChannelSinkChain"><MemberSignature Language="C#" Value="public static System.Runtime.Remoting.Channels.IServerChannelSink CreateServerChannelSinkChain (System.Runtime.Remoting.Channels.IServerChannelSinkProvider provider, System.Runtime.Remoting.Channels.IChannelReceiver channel);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Runtime.Remoting.Channels.IServerChannelSink CreateServerChannelSinkChain(class System.Runtime.Remoting.Channels.IServerChannelSinkProvider provider, class System.Runtime.Remoting.Channels.IChannelReceiver channel) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Runtime.Remoting.Channels.IServerChannelSink</ReturnType></ReturnValue><Parameters><Parameter Name="provider" Type="System.Runtime.Remoting.Channels.IServerChannelSinkProvider" /><Parameter Name="channel" Type="System.Runtime.Remoting.Channels.IChannelReceiver" /></Parameters><Docs><remarks>To be added</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Creates a channel sink chain for the specified channel.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A new channel sink chain for the specified channel.</para></returns><param name="provider"><attribution license="cc4" from="Microsoft" modified="false" />The first provider in the chain of sink providers that will create the channel sink chain. </param><param name="channel"><attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Runtime.Remoting.Channels.IChannelReceiver" /> for which to create the channel sink chain. </param></Docs></Member><Member MemberName="DispatchMessage"><MemberSignature Language="C#" Value="public static System.Runtime.Remoting.Channels.ServerProcessing DispatchMessage (System.Runtime.Remoting.Channels.IServerChannelSinkStack sinkStack, System.Runtime.Remoting.Messaging.IMessage msg, out System.Runtime.Remoting.Messaging.IMessage replyMsg);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.Runtime.Remoting.Channels.ServerProcessing DispatchMessage(class System.Runtime.Remoting.Channels.IServerChannelSinkStack sinkStack, class System.Runtime.Remoting.Messaging.IMessage msg, class System.Runtime.Remoting.Messaging.IMessage replyMsg) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Runtime.Remoting.Channels.ServerProcessing</ReturnType></ReturnValue><Parameters><Parameter Name="sinkStack" Type="System.Runtime.Remoting.Channels.IServerChannelSinkStack" /><Parameter Name="msg" Type="System.Runtime.Remoting.Messaging.IMessage" /><Parameter Name="replyMsg" Type="System.Runtime.Remoting.Messaging.IMessage&amp;" RefType="out" /></Parameters><Docs><param name="sinkStack">To be added: an object of type 'IServerChannelSinkStack'</param><param name="msg">To be added: an object of type 'Runtime.Remoting.Messaging.IMessage'</param><param name="replyMsg">To be added: an object of type 'Runtime.Remoting.Messaging.IMessage&amp;'</param><summary>To be added</summary><returns>To be added: an object of type 'ServerProcessing'</returns><remarks>To be added</remarks></Docs></Member><Member MemberName="GetChannel"><MemberSignature Language="C#" Value="public static System.Runtime.Remoting.Channels.IChannel GetChannel (string name);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Runtime.Remoting.Channels.IChannel GetChannel(string name) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Runtime.Remoting.Channels.IChannel</ReturnType></ReturnValue><Parameters><Parameter Name="name" Type="System.String" /></Parameters><Docs><remarks>To be added</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Returns a registered channel with the specified name.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>An interface to a registered channel, or null if the channel is not registered.</para></returns><param name="name"><attribution license="cc4" from="Microsoft" modified="false" />The channel name. </param></Docs></Member><Member MemberName="GetChannelSinkProperties"><MemberSignature Language="C#" Value="public static System.Collections.IDictionary GetChannelSinkProperties (object obj);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Collections.IDictionary GetChannelSinkProperties(object obj) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Collections.IDictionary</ReturnType></ReturnValue><Parameters><Parameter Name="obj" Type="System.Object" /></Parameters><Docs><remarks>To be added</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Returns a <see cref="T:System.Collections.IDictionary" /> of properties for a given proxy.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>An interface to the dictionary of properties, or null if no properties were found.</para></returns><param name="obj"><attribution license="cc4" from="Microsoft" modified="false" />The proxy to retrieve properties for. </param></Docs></Member><Member MemberName="GetUrlsForObject"><MemberSignature Language="C#" Value="public static string[] GetUrlsForObject (MarshalByRefObject obj);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig string[] GetUrlsForObject(class System.MarshalByRefObject obj) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String[]</ReturnType></ReturnValue><Parameters><Parameter Name="obj" Type="System.MarshalByRefObject" /></Parameters><Docs><remarks>To be added</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Returns an array of all the URLs that can be used to reach the specified object.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>An array of strings that contains the URLs that can be used to remotely identify the object, or null if none were found.</para></returns><param name="obj"><attribution license="cc4" from="Microsoft" modified="false" />The object to retrieve the URL array for. </param></Docs></Member><Member MemberName="RegisterChannel"><MemberSignature Language="C#" Value="public static void RegisterChannel (System.Runtime.Remoting.Channels.IChannel chnl);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig void RegisterChannel(class System.Runtime.Remoting.Channels.IChannel chnl) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.Obsolete("Use RegisterChannel(IChannel,Boolean)")</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="chnl" Type="System.Runtime.Remoting.Channels.IChannel" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><block subset="none" type="note"><para><see cref="M:System.Runtime.Remoting.Channels.ChannelServices.RegisterChannel(System.Runtime.Remoting.Channels.IChannel)" /> is obsolete. Please use <see cref="M:System.Runtime.Remoting.Channels.ChannelServices.RegisterChannel(System.Runtime.Remoting.Channels.IChannel,System.Boolean)" /> instead.</para></block><para>The <see cref="M:System.Runtime.Remoting.Channels.ChannelServices.RegisterChannel(System.Runtime.Remoting.Channels.IChannel)" /> method takes in the <see cref="T:System.Runtime.Remoting.Channels.IChannel" /> interface from a channel object. The channel's <see cref="P:System.Runtime.Remoting.Channels.IChannel.ChannelName" /> must be unique, or the channel must be anonymous. A channel is anonymous if the <see cref="P:System.Runtime.Remoting.Channels.IChannel.ChannelName" /> is set to either null or <see cref="F:System.String.Empty" /> by using the name configuration property.</para><para>You cannot register two channels with the same name in a <see cref="T:System.AppDomain" />. By default, the name of a <see cref="T:System.Runtime.Remoting.Channels.Http.HttpChannel" /> is "http" and the name of a <see cref="T:System.Runtime.Remoting.Channels.Tcp.TcpChannel" /> is "tcp." Therefore, if you want to register two channels of the same type, you must specify a different name for one of them through configuration properties.</para><para>For more information about channel configuration properties, see <see cref="T:System.Runtime.Remoting.Channels.Http.HttpChannel" />, and <format type="text/html"><a href="73399D48-F0FD-46E9-828B-6CDAFDE5FFCE">[&lt;topic://gnconchanneltemplate&gt;]</a></format>.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Registers a channel with the channel services. <see cref="M:System.Runtime.Remoting.Channels.ChannelServices.RegisterChannel(System.Runtime.Remoting.Channels.IChannel)" /> is obsolete. Please use <see cref="M:System.Runtime.Remoting.Channels.ChannelServices.RegisterChannel(System.Runtime.Remoting.Channels.IChannel,System.Boolean)" /> instead.</para></summary><param name="chnl"><attribution license="cc4" from="Microsoft" modified="false" />The channel to register. </param></Docs></Member><Member MemberName="RegisterChannel"><MemberSignature Language="C#" Value="public static void RegisterChannel (System.Runtime.Remoting.Channels.IChannel chnl, bool ensureSecurity);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig void RegisterChannel(class System.Runtime.Remoting.Channels.IChannel chnl, bool ensureSecurity) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="chnl" Type="System.Runtime.Remoting.Channels.IChannel" /><Parameter Name="ensureSecurity" Type="System.Boolean" /></Parameters><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Runtime.Remoting.Channels.ChannelServices.RegisterChannel(System.Runtime.Remoting.Channels.IChannel,System.Boolean)" /> method receives the <see cref="T:System.Runtime.Remoting.Channels.IChannel" /> interface from a channel object. The channel's <see cref="P:System.Runtime.Remoting.Channels.IChannel.ChannelName" /> must be unique, or the channel must be anonymous. A channel is anonymous if the <see cref="P:System.Runtime.Remoting.Channels.IChannel.ChannelName" /> is set to either null or <see cref="F:System.String.Empty" /> by using the name configuration property.</para><para>You cannot register two channels with the same name in a <see cref="T:System.AppDomain" />. By default, the name of a <see cref="T:System.Runtime.Remoting.Channels.Http.HttpChannel" /> is "http" and the name of a <see cref="T:System.Runtime.Remoting.Channels.Tcp.TcpChannel" /> is "tcp". Therefore, if you want to register two channels of the same type, you must specify a different name for one of them through configuration properties.</para><para>For more information about channel configuration properties, see <format type="text/html"><a href="226ecf74-ebbd-4ea0-a701-dcf4441deefe">Channel and Formatter Configuration Properties</a></format> and <format type="text/html"><a href="73399D48-F0FD-46E9-828B-6CDAFDE5FFCE">[&lt;topic://gnconchanneltemplate&gt;]</a></format>.</para><para>If the <paramref name="ensureSecurity" /> parameter is set to true, the remoting system determines whether the channel implements <see cref="T:System.Runtime.Remoting.Channels.ISecurableChannel" />, and if so, enables encryption and digital signatures. An exception is thrown if the channel does not implement <see cref="T:System.Runtime.Remoting.Channels.ISecurableChannel" />. </para><block subset="none" type="note"><para> Setting <paramref name="ensureSecurity" /> to true throws a <see cref="T:System.Runtime.Remoting.RemotingException" /> for the <see cref="T:System.Runtime.Remoting.Channels.Tcp.TcpServerChannel" /> on Windows 98 (Since secure tcp channels are not supported on Windows 9x), and for the <see cref="T:System.Runtime.Remoting.Channels.Http.HttpServerChannel" /> on all platforms (You must host your service in IIS if you want to use a secure http channel). </para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Registers a channel with the channel services.</para></summary><param name="chnl"><attribution license="cc4" from="Microsoft" modified="false" />The channel to register.</param><param name="ensureSecurity"><attribution license="cc4" from="Microsoft" modified="false" />true ensures that security is enabled; otherwise false. Setting the value to false does not effect the security setting on the TCP or IPC channel. </param></Docs></Member><Member MemberName="RegisteredChannels"><MemberSignature Language="C#" Value="public static System.Runtime.Remoting.Channels.IChannel[] RegisteredChannels { get; }" /><MemberSignature Language="ILAsm" Value=".property class System.Runtime.Remoting.Channels.IChannel[] RegisteredChannels" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Runtime.Remoting.Channels.IChannel[]</ReturnType></ReturnValue><Docs><value>To be added: an object of type 'IChannel []'</value><remarks>To be added</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets a list of currently registered channels.</para></summary></Docs></Member><Member MemberName="SyncDispatchMessage"><MemberSignature Language="C#" Value="public static System.Runtime.Remoting.Messaging.IMessage SyncDispatchMessage (System.Runtime.Remoting.Messaging.IMessage msg);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Runtime.Remoting.Messaging.IMessage SyncDispatchMessage(class System.Runtime.Remoting.Messaging.IMessage msg) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Runtime.Remoting.Messaging.IMessage</ReturnType></ReturnValue><Parameters><Parameter Name="msg" Type="System.Runtime.Remoting.Messaging.IMessage" /></Parameters><Docs><remarks>To be added</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Synchronously dispatches the incoming message to the server-side chain(s) based on the URI embedded in the message.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A reply message is returned by the call to the server-side chain.</para></returns><param name="msg"><attribution license="cc4" from="Microsoft" modified="false" />The message to dispatch. </param></Docs></Member><Member MemberName="UnregisterChannel"><MemberSignature Language="C#" Value="public static void UnregisterChannel (System.Runtime.Remoting.Channels.IChannel chnl);" /><MemberSignature Language="ILAsm" Value=".method public static hidebysig void UnregisterChannel(class System.Runtime.Remoting.Channels.IChannel chnl) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="chnl" Type="System.Runtime.Remoting.Channels.IChannel" /></Parameters><Docs><remarks>To be added</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Unregisters a particular channel from the registered channels list.</para></summary><param name="chnl"><attribution license="cc4" from="Microsoft" modified="false" />The channel to unregister. </param></Docs></Member></Members></Type>