Пример #1
0
 public object SmartCall(Delegate del, object[] args)
 {
     DelegateSignature.Generator func = _assembly.GetDelegateSignature(del);
     if (func != null)
     {
         return(func(del, args));
     }
     return(del.Method.Invoke(del.Target, args));
 }
Пример #2
0
 public DelegateSignature.Generator GetDelegateSignature(Delegate del)
 {
     DelegateSignature.Generator generator = null;
     _delegateSignatures.TryGetValue(del.GetType(), out generator);
     return(generator);
 }
Пример #3
0
 public void AddDelegateSignature(Type t, DelegateSignature.Generator generator)
 {
     _delegateSignatures.Add(t, generator);
 }
Пример #4
0
 public DelegateSignature.Generator GetDelegateSignature(Type t)
 {
     DelegateSignature.Generator generator = null;
     _delegateSignatures.TryGetValue(t, out generator);
     return(generator);
 }