Как удаленные события в.NET Remoting?
У меня есть класс для удаленного взаимодействия, который содержит события. Но когда я пытаюсь установить обработчик для этих событий на стороне клиента, я получаю исключение. Мой код выглядит так:
//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 ответ
http://msdn.microsoft.com/en-us/library/61w7kz4b(v=vs.80).aspx
В.NET Framework уровень безопасности по умолчанию для распределенного взаимодействия (удаленного взаимодействия) является низким. Это влияет на передачу пользовательского типа объекта удаленным методам. В некоторых случаях вам может потребоваться настроить уровень безопасности по умолчанию на полный, чтобы разрешить сериализацию объектов.
Если вы находитесь в ASP.Net, вот как установить уровень безопасности (доверия):