Как удаленные события в .NET Remoting? - PullRequest
2 голосов
/ 30 сентября 2011

У меня есть класс для удаленного взаимодействия, который содержит события.Но когда я пытаюсь установить обработчик для этих событий на стороне клиента, я получаю исключение.Мой код выглядит так:

    //In common library
    class RemoteClass : MarshalByRefObject
    {
    public event EventHandler SomeEvent = null;

    public void SomeMethod () {}
    }

    //On client-side
    RemoteClass r = (RemoteClass) RemotingServer.Connect (typeof(RemoteClass), "myURL");

    r.SomeMethod (); //Everything is OK here.

    r.SomeEvent += delegate (object o, EventArgs e) { }; //Exception:Type 

System.DelegateSerializationHolder и производные от него типы (такие как System.DelegateSerializationHolder) не могут быть десериализованы на этом уровне безопасности.

Что мне делатьсделать неправильно?

1 Ответ

6 голосов
/ 30 сентября 2011

http://msdn.microsoft.com/en-us/library/61w7kz4b(v=vs.80).aspx

В .NET Framework уровень безопасности по умолчанию для распределенной связи (удаленного взаимодействия) является низким.Это влияет на передачу пользовательского типа объекта удаленным методам.Вам может потребоваться настроить уровень безопасности по умолчанию на полный в некоторых случаях, чтобы разрешить сериализацию объектов.

Если вы находитесь в ASP.Net, вот как установить уровень безопасности (доверия):

http://msdn.microsoft.com/en-us/library/ff648344.aspx

...