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
Параметры
Возвращаемое значение
Прокси к объекту, который представлен данным 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
Параметры
- fRefine
- Boolean
true
, чтобы уточнить прокси для типа сервера; иначе — false
.
Возвращаемое значение
Прокси к объекту, который представлен данным ObjRef.
- Атрибуты
Исключения
Экземпляр ObjRef, указанный в параметре objectRef
, создан с ошибкой.
По крайней мере у одного из вызывающих операторов, находящихся в верхней части стека вызовов, отсутствует разрешение на настройку типов и каналов удаленного взаимодействия.
Комментарии
— ObjRef это сериализуемое представление объекта, используемого для передачи ссылки на объект через границу домена приложения. ObjRef Создание объекта для объекта называется маршалингом. Можно ObjRef передать через канал в другой домен приложения (возможно, на другом процессе или компьютере). В другом домене ObjRef приложения необходимо проанализировать, чтобы создать прокси-сервер для объекта, обычно подключенного к реальному объекту. Эта операция называется размежеванием. Во время распаковки ObjRef выполняется синтаксический анализ для извлечения сведений о методе удаленного объекта, и создаются как прозрачный прокси-сервер, так и RealProxy объекты . Содержимое проанализированного ObjRef добавляется в прозрачный прокси-сервер до регистрации прозрачного прокси-сервера в среде CLR.
Содержит ObjRef сведения, описывающие Type класс и маршалируемого объекта, универсальный код ресурса (URI), который однозначно идентифицирует конкретный экземпляр объекта, а также сведения о том, как получить доступ к подразделению удаленного взаимодействия, в котором находится объект.
При первом создании прокси-сервер имеет тип MarshalByRefObject. При приведение к разным типам инфраструктура удаленного взаимодействия отслеживает наиболее часто используемый тип, чтобы избежать загрузки типа без необходимости.