RemotingServices.SetObjectUriForMarshal 方法

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

**命名空间:**System.Runtime.Remoting
**程序集:**mscorlib(在 mscorlib.dll 中)

语法

声明
Public Shared Sub SetObjectUriForMarshal ( _
    obj As MarshalByRefObject, _
    uri As String _
)
用法
Dim obj As MarshalByRefObject
Dim uri As String

RemotingServices.SetObjectUriForMarshal(obj, uri)
public static void SetObjectUriForMarshal (
    MarshalByRefObject obj,
    string uri
)
public:
static void SetObjectUriForMarshal (
    MarshalByRefObject^ obj, 
    String^ uri
)
public static void SetObjectUriForMarshal (
    MarshalByRefObject obj, 
    String uri
)
public static function SetObjectUriForMarshal (
    obj : MarshalByRefObject, 
    uri : String
)

参数

  • obj
    为其设置 URI 的对象。
  • uri
    要分配给指定对象的 URI。

异常

异常类型 条件

RemotingException

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

SecurityException

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

备注

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

封送后,将指定对象的 URI 设置为 uri 参数中的字符串,该字符串被追加到当前 AppDomainGuid

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

示例

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

Imports System
Imports System.Runtime.Remoting
Imports System.Security.Permissions

Public Class SetObjectUriForMarshalTest
    
    Class TestClass
        Inherits MarshalByRefObject
    End Class

    <SecurityPermission(SecurityAction.LinkDemand)> _
    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
using System;
using System.Runtime.Remoting;
using System.Security.Permissions;

public class SetObjectUriForMarshalTest  {

    class TestClass : MarshalByRefObject {
    }

    [SecurityPermission(SecurityAction.LinkDemand)]
    public static void Main()  {

        TestClass obj = new TestClass();    

        RemotingServices.SetObjectUriForMarshal(obj, "testUri");
        RemotingServices.Marshal(obj);

        Console.WriteLine(RemotingServices.GetObjectUri(obj));
    }
}
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::Infrastructure)]   
   static void Main()
   {
      TestClass^ obj = gcnew TestClass;
      RemotingServices::SetObjectUriForMarshal( obj,  "testUri" );
      RemotingServices::Marshal(obj);
      Console::WriteLine( RemotingServices::GetObjectUri( obj ) );
   }

};

.NET Framework 安全性

平台

Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

RemotingServices 类
RemotingServices 成员
System.Runtime.Remoting 命名空间
Uri
Guid