指定した URL またはチャネル データ オブジェクトにメッセージを配信するチャネル メッセージ シンクを返します。
Public Overridable Function CreateMessageSink( _
ByVal url As String, _ ByVal remoteChannelData As Object, _ <Out()> ByRef objectURI As String _) As IMessageSink Implements IChannelSender.CreateMessageSink
[C#]
public virtual IMessageSink CreateMessageSink(stringurl,objectremoteChannelData, out stringobjectURI);
[C++]
public: virtual IMessageSink* CreateMessageSink(String* url,Object* remoteChannelData, [ Out] String** objectURI);
[JScript]
public function CreateMessageSink(
url : String,remoteChannelData : Object,objectURI : String) : IMessageSink;
パラメータ
- url
新しいシンクがメッセージを配信する先の URL。 null 参照 (Visual Basic では Nothing) でもかまいません。 - remoteChannelData
新しいシンクがメッセージを配信する先のリモート ホストのチャネル データ オブジェクト。 null 参照 (Visual Basic では Nothing) でもかまいません。 - objectURI
このメソッドが返されるときに、指定した URL またはチャネル データ オブジェクトにメッセージを配信する新しいチャネル メッセージ シンクの URI を格納します。このパラメータは初期化せずに渡されます。
戻り値
指定した URL またはチャネル データ オブジェクトにメッセージを配信するチャネル メッセージ シンク。
実装
IChannelSender.CreateMessageSink
解説
CreateMessageSink メソッドは、指定した URL またはチャネル データ オブジェクトにメッセージを配信するチャネル メッセージ シンクを返します。 uri パラメータが null 参照 (Visual Basic では Nothing) の場合は、シンクの対象として remoteChannelData が使用されます。 url または remoteChannelData のいずれかのパラメータを null 参照 (Nothing) にすることはできますが、両方を null にすることはできません。
チャネル シンクは、そのチャネルを流れている基になるメッセージにアクセスできるようにするプラグイン ポイント、およびリモート オブジェクトにメッセージを送信するために転送機構が使用するストリームを提供します。チャネル シンクは互いにリンクされて ChannelSinkProviders のチェインとなり、すべてのチャネル メッセージはこのシンク チェインを流れた後で、最終的にシリアル化されて転送されます。
使用例
Imports System
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Channels.Http
Imports System.Runtime.Remoting.Messaging
Module Module1
Sub Main()
' Create a remotable object.
Dim channel As New HttpChannel(8085)
ChannelServices.RegisterChannel(channel)
Dim WKSTE As New WellKnownServiceTypeEntry(GetType(HelloService), _
"Service", _
WellKnownObjectMode.Singleton)
RemotingConfiguration.RegisterWellKnownServiceType(WKSTE)
RemotingConfiguration.ApplicationName = "TempConverter"
' Create a message sink for TempConverter.
Dim objURI As String
Dim sink As IMessageSink
sink = channel.CreateMessageSink("https://localhost:8085/TempConverter", _
channel, _
objURI)
' Do processing on messsage sink...
[C#]
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;
using System.Runtime.Remoting.Messaging;
class Class1 {
static void Main() {
// Create a remotable object.
HttpChannel channel = new HttpChannel(8085);
ChannelServices.RegisterChannel(channel);
WellKnownServiceTypeEntry WKSTE =
new WellKnownServiceTypeEntry(typeof(HelloService),
"Service",
WellKnownObjectMode.Singleton);
RemotingConfiguration.RegisterWellKnownServiceType(WKSTE);
RemotingConfiguration.ApplicationName = "HelloServer";
// Create a message sink for TempConverter.
string objURI;
IMessageSink sink =
channel.CreateMessageSink("https://localhost:8085/HelloServer",
channel,
out objURI);
// Do processing on messsage sink...
Console.WriteLine("Press <enter> to exit");
Console.ReadLine();
}
}
[C++]
#using <mscorlib.dll>
#using <system.dll>
#using <system.runtime.remoting.dll>
using namespace System;
using namespace System::Runtime::Remoting;
using namespace System::Runtime::Remoting::Channels;
using namespace System::Runtime::Remoting::Channels::Http;
using namespace System::Runtime::Remoting::Messaging;
int main()
{
// Create a remotable Object*.
HttpChannel* channel = new HttpChannel(8085);
ChannelServices::RegisterChannel(channel);
WellKnownServiceTypeEntry* WKSTE = new WellKnownServiceTypeEntry(__typeof(HelloService),
S"Service",
WellKnownObjectMode::Singleton);
RemotingConfiguration::RegisterWellKnownServiceType(WKSTE);
RemotingConfiguration::ApplicationName = S"HelloServer";
// Create a message sink for TempConverter.
String* objURI;
IMessageSink* sink =
channel->CreateMessageSink(S"https://localhost:8085/HelloServer",
channel, &objURI);
// Do processing on messsage sink...
Console::WriteLine(S"Press <enter> to exit");
Console::ReadLine();
return 0;
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
.NET Framework セキュリティ:
- 直前の呼び出し元の完全信頼。このメンバは、部分的に信頼されているコードから使用することはできません。詳細の参照先 : 部分信頼コードからのライブラリの使用
参照
HttpChannel クラス | HttpChannel メンバ | System.Runtime.Remoting.Channels.Http 名前空間