RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) 方法

定义

为后续的 Marshal(MarshalByRefObject) 方法调用设置 URI。

public:
 static void SetObjectUriForMarshal(MarshalByRefObject ^ obj, System::String ^ uri);
public static void SetObjectUriForMarshal (MarshalByRefObject obj, string uri);
static member SetObjectUriForMarshal : MarshalByRefObject * string -> unit
Public Shared Sub SetObjectUriForMarshal (obj As MarshalByRefObject, uri As String)

参数

obj
MarshalByRefObject

为其设置 URI 的对象。

uri
String

要分配给指定对象的 URI。

例外

obj 不是局部对象、已被封送、或已对其调用了当前方法。

在调用堆栈上部,至少有一个调用方没有配置远程处理类型和通道的权限。

示例

下面的代码示例演示如何设置在封送指定对象时方法将使用 Marshal 的 URI。

using namespace System;
using namespace System::Runtime::Remoting;
using namespace System::Security::Permissions;

public ref class SetObjectUriForMarshalTest
{
public:
   ref class TestClass: public MarshalByRefObject{};

   [SecurityPermissionAttribute(SecurityAction::Demand, Flags=SecurityPermissionFlag::RemotingConfiguration)]   
   static void Main()
   {
      TestClass^ obj = gcnew TestClass;
      RemotingServices::SetObjectUriForMarshal( obj,  "testUri" );
      RemotingServices::Marshal(obj);
      Console::WriteLine( RemotingServices::GetObjectUri( obj ) );
   }

};
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));
    }
}
Imports System.Runtime.Remoting
Imports System.Security.Permissions


Public Class SetObjectUriForMarshalTest
    
    Class TestClass
        Inherits MarshalByRefObject
    End Class

    <SecurityPermission(SecurityAction.Demand, Flags:= SecurityPermissionFlag.RemotingConfiguration )> _
    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

注解

封送给定对象时,将使用当前方法设置的 URI。

封送处理后,指定对象的 URI 设置为追加到Guid当前 AppDomain的参数中的uri字符串。

如果当前应用程序正在侦听 HTTP 端口,则参数中指定的uri字符串和uri附加到当前AppDomain路由的 的 字符串都附加到Guid指定对象。 例如,如果应用程序正在侦听 HTTP 端口 9000,则 、 和 http://localhost:9000/<appdomainguid>/objectUrihttp://localhost:9000/objectUri路由到 参数中指定的 obj 对象。

适用于

另请参阅