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。
异常
异常类型 | 条件 |
---|---|
obj 不是局部对象、已被封送、或已对其调用了当前方法。 |
|
在调用堆栈上部,至少有一个调用方没有配置远程处理类型和通道的权限。 |
备注
当封送给定的对象时使用当前方法设置的 URI。
封送后,将指定对象的 URI 设置为 uri 参数中的字符串,该字符串被追加到当前 AppDomain 的 Guid。
如果当前应用程序正在 HTTP 端口上侦听,则 uri 参数中指定的字符串和追加到当前 AppDomain 的 Guid 的 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 安全性
- SecurityPermission 用于远程处理基础结构的配置。要求值:SecurityAction.Demand;权限值:SecurityPermissionFlag.RemotingConfiguration
平台
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