Поделиться через


RemotingServices.Unmarshal Метод

Определение

Преобразует данный ObjRef в прокси-объект.

Перегрузки

Unmarshal(ObjRef)

Получает ObjRef и создает из него прокси-объект.

Unmarshal(ObjRef, Boolean)

Получает ObjRef и создает из него прокси-объект, подгоняя его к типу сервера.

Unmarshal(ObjRef)

Получает ObjRef и создает из него прокси-объект.

public:
 static System::Object ^ Unmarshal(System::Runtime::Remoting::ObjRef ^ objectRef);
public static object Unmarshal (System.Runtime.Remoting.ObjRef objectRef);
[System.Security.SecurityCritical]
public static object Unmarshal (System.Runtime.Remoting.ObjRef objectRef);
static member Unmarshal : System.Runtime.Remoting.ObjRef -> obj
[<System.Security.SecurityCritical>]
static member Unmarshal : System.Runtime.Remoting.ObjRef -> obj
Public Shared Function Unmarshal (objectRef As ObjRef) As Object

Параметры

objectRef
ObjRef

ObjRef, который представляет удаленный объект, для которого создается прокси.

Возвращаемое значение

Прокси к объекту, который представлен данным ObjRef.

Атрибуты

Исключения

Экземпляр ObjRef, указанный в параметре objectRef, создан с ошибкой.

По крайней мере у одного из вызывающих операторов, находящихся в верхней части стека вызовов, отсутствует разрешение на настройку типов и каналов удаленного взаимодействия.

Примеры

В следующем примере кода показано, как отменить исключение объекта.

ChannelServices::RegisterChannel( gcnew HttpChannel );

SampleService ^ objectSample = (SampleService^)( Activator::GetObject( SampleService::typeid,
   "http://localhost:9000/MySampleService/SampleService.soap" ) );

// The GetManuallyMarshaledObject() method uses RemotingServices::Marshal()
// to create an ObjRef object for a SampleTwo object.
ObjRef^ objRefSampleTwo = objectSample->GetManuallyMarshaledObject();

SampleTwo ^ objectSampleTwo = (SampleTwo^)( RemotingServices::Unmarshal( objRefSampleTwo ) );

objectSampleTwo->PrintMessage( "ObjRef successfuly unmarshaled." );
ChannelServices.RegisterChannel(new HttpChannel());

SampleService objectSample = (SampleService)Activator.GetObject(typeof(SampleService),
    "http://localhost:9000/MySampleService/SampleService.soap");

// The GetManuallyMarshaledObject() method uses RemotingServices.Marshal()
// to create an ObjRef object for a SampleTwo object.
ObjRef objRefSampleTwo = objectSample.GetManuallyMarshaledObject();

SampleTwo objectSampleTwo = (SampleTwo)RemotingServices.Unmarshal(objRefSampleTwo);

objectSampleTwo.PrintMessage("ObjRef successfuly unmarshaled.");
ChannelServices.RegisterChannel(New HttpChannel())

Dim objectSample As SampleService = CType(Activator.GetObject(GetType(SampleService), _ 
      "http://localhost:9000/MySampleService/SampleService.soap"), SampleService)

' The GetManuallyMarshaledObject() method uses RemotingServices.Marshal()
' to create an ObjRef object for a SampleTwo object.
Dim objRefSampleTwo As ObjRef = objectSample.GetManuallyMarshaledObject()

Dim objectSampleTwo As SampleTwo = CType(RemotingServices.Unmarshal(objRefSampleTwo), SampleTwo)

objectSampleTwo.PrintMessage("I successfully unmarshaled your ObjRef.  Thanks.")

Комментарии

ObjRef это сериализуемое представление объекта, используемого для передачи ссылки на объект через границу домена приложения. ObjRef Создание объекта для объекта называется маршалингом. Можно ObjRef передать через канал в другой домен приложения (возможно, на другом процессе или компьютере). В другом домене ObjRef приложения необходимо проанализировать, чтобы создать прокси-сервер для объекта, обычно подключенного к реальному объекту. Эта операция называется размежеванием. Во время распаковки ObjRef выполняется синтаксический анализ для извлечения сведений о методе удаленного объекта, и создаются как прозрачный прокси-сервер, так и RealProxy объекты . Содержимое проанализированного ObjRef добавляется в прозрачный прокси-сервер до регистрации прозрачного прокси-сервера в среде CLR.

Содержит ObjRef сведения, описывающие Type класс и маршалируемого объекта, универсальный код ресурса (URI), который однозначно идентифицирует конкретный экземпляр объекта, а также сведения о том, как получить доступ к подразделению удаленного взаимодействия, в котором находится объект.

См. также раздел

Применяется к

Unmarshal(ObjRef, Boolean)

Получает ObjRef и создает из него прокси-объект, подгоняя его к типу сервера.

public:
 static System::Object ^ Unmarshal(System::Runtime::Remoting::ObjRef ^ objectRef, bool fRefine);
public static object Unmarshal (System.Runtime.Remoting.ObjRef objectRef, bool fRefine);
[System.Security.SecurityCritical]
public static object Unmarshal (System.Runtime.Remoting.ObjRef objectRef, bool fRefine);
static member Unmarshal : System.Runtime.Remoting.ObjRef * bool -> obj
[<System.Security.SecurityCritical>]
static member Unmarshal : System.Runtime.Remoting.ObjRef * bool -> obj
Public Shared Function Unmarshal (objectRef As ObjRef, fRefine As Boolean) As Object

Параметры

objectRef
ObjRef

ObjRef, который представляет удаленный объект, для которого создается прокси.

fRefine
Boolean

true, чтобы уточнить прокси для типа сервера; иначе — false.

Возвращаемое значение

Прокси к объекту, который представлен данным ObjRef.

Атрибуты

Исключения

Экземпляр ObjRef, указанный в параметре objectRef, создан с ошибкой.

По крайней мере у одного из вызывающих операторов, находящихся в верхней части стека вызовов, отсутствует разрешение на настройку типов и каналов удаленного взаимодействия.

Комментарии

ObjRef это сериализуемое представление объекта, используемого для передачи ссылки на объект через границу домена приложения. ObjRef Создание объекта для объекта называется маршалингом. Можно ObjRef передать через канал в другой домен приложения (возможно, на другом процессе или компьютере). В другом домене ObjRef приложения необходимо проанализировать, чтобы создать прокси-сервер для объекта, обычно подключенного к реальному объекту. Эта операция называется размежеванием. Во время распаковки ObjRef выполняется синтаксический анализ для извлечения сведений о методе удаленного объекта, и создаются как прозрачный прокси-сервер, так и RealProxy объекты . Содержимое проанализированного ObjRef добавляется в прозрачный прокси-сервер до регистрации прозрачного прокси-сервера в среде CLR.

Содержит ObjRef сведения, описывающие Type класс и маршалируемого объекта, универсальный код ресурса (URI), который однозначно идентифицирует конкретный экземпляр объекта, а также сведения о том, как получить доступ к подразделению удаленного взаимодействия, в котором находится объект.

При первом создании прокси-сервер имеет тип MarshalByRefObject. При приведение к разным типам инфраструктура удаленного взаимодействия отслеживает наиболее часто используемый тип, чтобы избежать загрузки типа без необходимости.

См. также раздел

Применяется к