Как определить, является ли MarshalByRefObject локальным или удаленным? - PullRequest
2 голосов
/ 11 января 2012

Другими словами, как мне узнать, есть ли у меня ссылка на TransparentProxy или локальный объект?

Ответы [ 2 ]

5 голосов
/ 20 января 2012

Взгляните на IsTransparentProxy метод, найденный в RemotingServices .

0 голосов
/ 11 января 2012

Попробуйте этот забавный трюк:

bool fIsTransparentProxy = ((myTransparentObject as MarshalByRefObject) == null);

Когда я попытался преобразовать прозрачный прокси в MarshalByRefObject, он вернул ноль.Я проверил это в VB, так как именно там находятся все мои прокси, но, надеюсь, такое же поведение сохраняется в C #.

Также обратите внимание, что отладчик Visual Studio знает, что есть что, но я не мог понять, какполучить код, который дает те же результаты (при наведении курсора на объект TP в VS отображается System.Runtime.Remoting.Proxies.__TransparentProxy как тип класса, но это внутренний запечатанный класс).

...