}
internal static Delegate createDel(Type eventType, object instance, string method){
Type t = instance.GetType ();
- MethodInfo mi = t.GetMethod (method);
- if (mi == null)
+ MethodInfo mi = t.GetMethod (method, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
+ if (mi == null) {
+ Debug.WriteLine ("Handler Method '{0}' not found in '{1}'", method, t);
return null;
+ }
return Delegate.CreateDelegate (eventType, instance, mi);
}
public static Delegate compileDynEventHandler(EventInfo sourceEvent, string expression, NodeAddress currentNode = null){
NodeAddress sourceNA = ctx.CurrentNodeAddress;
BindingDefinition bindingDef = splitBindingExp (sourceNA, sourceMember, expression);
+ #if DEBUG_BINDING
+ Debug.WriteLine("Property Binding: " + bindingDef.ToString());
+ #endif
+
if (bindingDef.IsDataSourceBinding)//bind on data source
emitDataSourceBindings (ctx, bindingDef);
else
NodeAddress currentNode = ctx.CurrentNodeAddress;
BindingDefinition bindingDef = splitBindingExp (currentNode, sourceEvent.Name, expression);
+ #if DEBUG_BINDING
+ Debug.WriteLine("Event Binding: " + bindingDef.ToString());
+ #endif
+
if (bindingDef.IsTemplateBinding | bindingDef.IsDataSourceBinding) {
//we need to bind datasource method to source event
DynamicMethod dm = new DynamicMethod ("dyn_dschangedForHandler" + NewId,