共用方式為


IChannel.ChannelPriority 屬性

定義

取得通道的優先權。

public:
 property int ChannelPriority { int get(); };
public int ChannelPriority { get; }
public int ChannelPriority { [System.Security.SecurityCritical] get; }
member this.ChannelPriority : int
[<get: System.Security.SecurityCritical>]
member this.ChannelPriority : int
Public ReadOnly Property ChannelPriority As Integer

屬性值

整數,指出通道的優先權。

屬性

例外狀況

立即呼叫端沒有基礎結構使用權限。

範例

// Creating the 'IDictionary' to set the server object properties.
IDictionary^ myDictionary = gcnew Hashtable;
myDictionary[ "name" ] = "HttpClientChannel";
myDictionary[ "priority" ] = 2;

// Set the properties along with the constructor.
HttpClientChannel^ myHttpClientChannel = gcnew HttpClientChannel( myDictionary,gcnew BinaryClientFormatterSinkProvider );

// Register the server channel.
ChannelServices::RegisterChannel( myHttpClientChannel );
MyHelloServer ^ myHelloServer1 = dynamic_cast<MyHelloServer^>(Activator::GetObject( MyHelloServer::typeid, "http://localhost:8085/SayHello" ));
if ( myHelloServer1 == nullptr )
      System::Console::WriteLine( "Could not locate server" );
else
{
   Console::WriteLine( myHelloServer1->myHelloMethod( "Client" ) );

   // Get the name of the channel.
   Console::WriteLine( "Channel Name :{0}", myHttpClientChannel->ChannelName );

   // Get the channel priority.
   Console::WriteLine( "ChannelPriority :{0}", myHttpClientChannel->ChannelPriority );
   String^ myString;
   String^ myObjectURI1;
   Console::WriteLine( "Parse :{0}{1}", myHttpClientChannel->Parse( "http://localhost:8085/SayHello",  myString ), myString );

   // Get the key count.
   System::Console::WriteLine( "Keys->Count : {0}", myHttpClientChannel->Keys->Count );

   // Get the channel message sink that delivers message to the specified url.
   IMessageSink^ myIMessageSink = myHttpClientChannel->CreateMessageSink( "http://localhost:8085/NewEndPoint", nullptr,  myObjectURI1 );
   Console::WriteLine( "The channel message sink that delivers the messages to the URL is : {0}", myIMessageSink );
   Console::WriteLine( "URI of the new channel message sink is: {0}", myObjectURI1 );
}
// Creating the 'IDictionary' to set the server object properties.
IDictionary myDictionary = new Hashtable();
myDictionary["name"]="HttpClientChannel";
myDictionary["priority"]=2;
// Set the properties along with the constructor.
HttpClientChannel myHttpClientChannel =
      new HttpClientChannel(myDictionary,new BinaryClientFormatterSinkProvider());
// Register the server channel.
ChannelServices.RegisterChannel(myHttpClientChannel);
MyHelloServer myHelloServer1 = (MyHelloServer)Activator.GetObject(
typeof(MyHelloServer), "http://localhost:8085/SayHello");
if (myHelloServer1 == null)
   {
       System.Console.WriteLine("Could not locate server");
   }
   else
{
   Console.WriteLine(myHelloServer1.myHelloMethod("Client"));
   // Get the name of the channel.
   Console.WriteLine("Channel Name :"+myHttpClientChannel.ChannelName);
   // Get the channel priority.
   Console.WriteLine("ChannelPriority :"+myHttpClientChannel.ChannelPriority.ToString());
   string myString,myObjectURI1;
   Console.WriteLine("Parse :" +
       myHttpClientChannel.Parse("http://localhost:8085/SayHello",out myString)+myString);
   // Get the key count.
   System.Console.WriteLine("Keys.Count : " + myHttpClientChannel.Keys.Count);
   // Get the channel message sink that delivers message to the specified url.
   IMessageSink myIMessageSink =
   myHttpClientChannel.CreateMessageSink("http://localhost:8085/NewEndPoint",
                                                                   null,out myObjectURI1);
   Console.WriteLine("The channel message sink that delivers the messages to the URL is : "
                           +myIMessageSink.ToString());
   Console.WriteLine("URI of the new channel message sink is: " +myObjectURI1);
}
  ' Creating the 'IDictionary' to set the server object properties.
  Dim myDictionary As  New Hashtable()
  myDictionary("name") = "HttpClientChannel"
  myDictionary("priority") = 2
  ' Set the properties along with the constructor.
Dim myHttpClientChannel As New _
          HttpClientChannel( myDictionary, New BinaryClientFormatterSinkProvider)
  ' Register the server channel.
  ChannelServices.RegisterChannel(myHttpClientChannel)
  Dim myHelloServer1 As MyHelloServer = CType(Activator.GetObject(GetType(MyHelloServer), _
          "http://localhost:8085/SayHello"), MyHelloServer)
  If myHelloServer1 Is Nothing Then
     System.Console.WriteLine("Could not locate server")
  Else
     Console.WriteLine(myHelloServer1.myHelloMethod("Client"))
     ' Get the name of the channel.
     Console.WriteLine("Channel Name :" + myHttpClientChannel.ChannelName)
     ' Get the channel priority.
     Console.WriteLine("ChannelPriority :" + myHttpClientChannel.ChannelPriority.ToString())
     Dim myString, myObjectURI1 As String
     Console.WriteLine("Parse :" + _
          myHttpClientChannel.Parse("http://localhost:8085/SayHello", myString) + myString)
     ' Get the key count.
     System.Console.WriteLine("Keys.Count : " + myHttpClientChannel.Keys.Count.ToString())
     ' Get the channel message sink that delivers message to the specified url.
     Dim myIMessageSink As IMessageSink =myHttpClientChannel.CreateMessageSink( _
          "http://localhost:8085/NewEndPoint", Nothing, myObjectURI1)
   Console.WriteLine("The channel message sink that delivers the messages to the URL is :" + _
           CType(myIMessageSink, Object).ToString)
   Console.WriteLine("URI of the new channel message sink is: " + myObjectURI1)
  End If

備註

較高的數位表示較高的優先順序,因此優先順序為 50 的通道優先順序高於優先順序為 25 的通道。 跨應用程式域通道的優先順序為 100。

具有較高優先順序的用戶端通道,第一次有機會從 ObjRef 連線到 URL 或特定通道資料輸入所指定的遠端物件。

對於伺服器通道,優先順序會指出其通道資料出現在 中 ObjRef 的順序,進而影響用戶端嘗試連線到伺服器物件的順序。 如果伺服器正在接聽優先順序為 50 的 HTTP 通道,以及優先順序為 25 的 TCP 通道,且用戶端已註冊 HTTP 和 TCP 通道,則用戶端會使用 HTTP 通道與伺服器通訊。

適用於

另請參閱