RemotingServices.SetObjectUriForMarshal メソッド
Marshal メソッドへの後続の呼び出しに対して URI を設定します。
Public Shared Sub SetObjectUriForMarshal( _
ByVal obj As MarshalByRefObject, _ ByVal uri As String _)
[C#]
public static void SetObjectUriForMarshal(MarshalByRefObjectobj,stringuri);
[C++]
public: static void SetObjectUriForMarshal(MarshalByRefObject* obj,String* uri);
[JScript]
public static function SetObjectUriForMarshal(
obj : MarshalByRefObject,uri : String);
パラメータ
- obj
URI を設定する対象となるオブジェクト。 - uri
指定したオブジェクトに割り当てる URI。
例外
例外の種類 | 条件 |
---|---|
RemotingException | obj がローカル オブジェクトではありません。既にマーシャリングされています。または、現在のメソッドが既に呼び出されています。 |
SecurityException | コールスタックの上位にある 1 つ以上の呼び出し元に、リモート処理の型とチャネルを構成するためのアクセス許可がありません。 |
解説
特定のオブジェクトをマーシャリングする場合、現在のメソッドで設定された URI が使用されます。
メモ マーシャリング後、指定したオブジェクトの URI は、現在の AppDomain の Guid に追加された uri パラメータの文字列に設定されます。
メモ 現在のアプリケーションが HTTP ポートで待機している場合は、 uri パラメータで指定した文字列と現在の AppDomain の Guid に追加された uri 文字列の両方が、指定したオブジェクトに送信されます。たとえば、アプリケーションが HTTP ポート 9000 で待機している場合は、https://localhost:9000/objectUri と https://localhost:9000/<appdomainguid>/objectUri の両方が obj パラメータで指定したオブジェクトに送信されます。
使用例
[Visual Basic, C#, C++] 指定したオブジェクトをマーシャリングするときに Marshal メソッドで使用する URI を設定する方法の例を次に示します。
Imports System
Imports System.Runtime.Remoting
Public Class SetObjectUriForMarshalTest
Class TestClass
Inherits MarshalByRefObject
End Class
Public Shared Sub Main()
Dim obj As TestClass = New TestClass()
RemotingServices.SetObjectUriForMarshal(obj, "testUri")
RemotingServices.Marshal(obj)
Console.WriteLine(RemotingServices.GetObjectUri(obj))
End Sub
End Class
[C#]
using System;
using System.Runtime.Remoting;
public class SetObjectUriForMarshalTest {
class TestClass : MarshalByRefObject {
}
public static void Main() {
TestClass obj = new TestClass();
RemotingServices.SetObjectUriForMarshal(obj, "testUri");
RemotingServices.Marshal(obj);
Console.WriteLine(RemotingServices.GetObjectUri(obj));
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::Runtime::Remoting;
public __gc class SetObjectUriForMarshalTest
{
public:
__gc class TestClass : public MarshalByRefObject
{
};
public:
static void Main()
{
TestClass * obj = new TestClass();
RemotingServices::SetObjectUriForMarshal(obj, "testUri");
RemotingServices::Marshal(obj);
Console::WriteLine(RemotingServices::GetObjectUri(obj));
}
};
[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 セキュリティ:
- SecurityPermission (リモート処理インフラストラクチャを構成するために必要なアクセス許可)要求値: SecurityAction.Demand; アクセス許可値: SecurityPermissionFlag.RemotingConfiguration
参照
RemotingServices クラス | RemotingServices メンバ | System.Runtime.Remoting 名前空間 | Uri | Guid