c# - Removing an event from a DynamicObject -
i have added event handlers dynamic object. however, not able remove them.
dynamic d = new mydynamicobject(); d.myevent += new eventhandler(this.myhandler); d.myevent -= new eventhandler(this.myhandler);
when add event handler, call trysetmember handler argument, however, when removing value null. if it's null, how supposed know handler remove internal storage of handlers particular event?
hard guess problem might without snippet at. i'll post simple works:
using system; using system.dynamic; class program { static void main(string[] args) { dynamic obj = new mydynamicobject(); obj.myevent += new eventhandler(handler); obj.myevent(null, eventargs.empty); obj.myevent -= new eventhandler(handler); } static void handler(object sender, eventargs e) { } } class mydynamicobject : dynamicobject { private eventhandler dlg = new eventhandler(delegate { }); public override bool trygetmember(getmemberbinder binder, out object result) { result = dlg; return true; } public override bool trysetmember(setmemberbinder binder, object value) { dlg = (eventhandler)value; return true; } }
Comments
Post a Comment