KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm having the problem described in this message board post . I have an object that is hosted in its own AppDomain. public class MyObject : MarshalByRefObject { public event EventHandler TheEvent; ... ... } I'd like to add a handler to that event. The handler will run in a different AppDomain. My understanding is this is all good, events get delivered across that boundary magically, with .NET Remoting. But, when I do this: // instance is an instance of an object that runs in a separate AppDomain instance.TheEvent += this.Handler ; ...it compiles fine but fails at runtime with: System.Runtime.Remoting.RemotingException: Remoting cannot find field 'TheEvent' on type 'MyObject'. Why? EDIT : source code of working app that demonstrates the problem: // EventAcrossAppDomain.cs // ------------------------------------------------------------------ // // demonstrate an exception that occurs when trying to use events across AppDomains. // // The exception is: // System.Runtime.Remoting.RemotingException: // Remoting cannot find field 'TimerExpired' on type 'Cheeso.Tests.EventAcrossAppDomain.MyObject'. // // compile with: // c:\.net3.5\csc.exe /t:exe /debug:full /out:EventAcrossAppDomain.exe EventAcrossAppDomain.cs // using System; using System.Threading; using System.Reflection; namespace Cheeso.Tests.EventAcrossAppDomain { public class MyObject : MarshalByRefObject { public event EventHandler TimerExpired; public EventHandler TimerExpired2; public MyObject() { } public void Go(int seconds) { _timeToSleep = seconds; ThreadPool.QueueUserWorkItem(Delay); } private void Delay(Object stateInfo) {
Tags (comma-separated)
Save Edits
Cancel