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)); }
public DelegateSignature.Generator GetDelegateSignature(Delegate del) { DelegateSignature.Generator generator = null; _delegateSignatures.TryGetValue(del.GetType(), out generator); return(generator); }
public void AddDelegateSignature(Type t, DelegateSignature.Generator generator) { _delegateSignatures.Add(t, generator); }
public DelegateSignature.Generator GetDelegateSignature(Type t) { DelegateSignature.Generator generator = null; _delegateSignatures.TryGetValue(t, out generator); return(generator); }