RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
메서드에 대한 후속 호출에 대한 URI를 Marshal(MarshalByRefObject) 설정합니다.
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)
매개 변수
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가 현재 uri개체에 추가된 매개 변수의 문자열 Guid 로 AppDomain 설정됩니다.
현재 애플리케이션이 HTTP 포트에서 수신 대기하는 경우 매개 변수에 uri 지정된 문자열과 uri 지정된 개체에 현재 Guid 경로의 문자열이 AppDomain 모두 추가됩니다. 예를 들어 애플리케이션이 HTTP 포트 9000에서 수신 대기하는 경우 둘 다 http://localhost:9000/objectUri매개 http://localhost:9000/<appdomainguid>/objectUri 변수에 obj 지정된 개체로 라우팅됩니다.