RemotingServices.SetObjectUriForMarshal(MarshalByRefObject, String) 메서드

정의

메서드에 대한 후속 호출에 대한 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)

매개 변수

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가 현재 uri개체에 추가된 매개 변수의 문자열 GuidAppDomain 설정됩니다.

현재 애플리케이션이 HTTP 포트에서 수신 대기하는 경우 매개 변수에 uri 지정된 문자열과 uri 지정된 개체에 현재 Guid 경로의 문자열이 AppDomain 모두 추가됩니다. 예를 들어 애플리케이션이 HTTP 포트 9000에서 수신 대기하는 경우 둘 다 http://localhost:9000/objectUri매개 http://localhost:9000/<appdomainguid>/objectUri 변수에 obj 지정된 개체로 라우팅됩니다.

적용 대상

추가 정보