public object Invoke(object obj, object[] arguments) { #if LOGGING && !SILVERLIGHT if (log.IsDebugEnabled) { log.Debug(__Res.GetString(__Res.Invoke_Method, _methodInfo.DeclaringType.FullName + "." + _methodInfo.Name)); } #endif object result = _methodInfo.Invoke(obj, arguments); object[] attributes = _methodInfo.GetCustomAttributes(false); if (attributes != null && attributes.Length > 0) { InvocationManager invocationManager = new InvocationManager(); invocationManager.Result = result; for (int i = 0; i < attributes.Length; i++) { Attribute attribute = attributes[i] as Attribute; if (attribute is IInvocationCallback) { IInvocationCallback invocationCallback = attribute as IInvocationCallback; invocationCallback.OnInvoked(invocationManager, _methodInfo, obj, arguments, result); } } for (int i = 0; i < attributes.Length; i++) { Attribute attribute = attributes[i] as Attribute; if (attribute is IInvocationResultHandler) { IInvocationResultHandler invocationResultHandler = attribute as IInvocationResultHandler; invocationResultHandler.HandleResult(invocationManager, _methodInfo, obj, arguments, result); } } return(invocationManager.Result); } return(result); }
public object Invoke(object obj, object[] arguments) { if (log.get_IsDebugEnabled()) { log.Debug(__Res.GetString("Invoke_Method", new object[] { this._methodInfo.DeclaringType.FullName + "." + this._methodInfo.Name })); } object result = this._methodInfo.Invoke(obj, arguments); object[] customAttributes = this._methodInfo.GetCustomAttributes(false); if ((customAttributes != null) && (customAttributes.Length > 0)) { int num; Attribute attribute; InvocationManager invocationManager = new InvocationManager { Result = result }; for (num = 0; num < customAttributes.Length; num++) { attribute = customAttributes[num] as Attribute; if (attribute is IInvocationCallback) { (attribute as IInvocationCallback).OnInvoked(invocationManager, this._methodInfo, obj, arguments, result); } } for (num = 0; num < customAttributes.Length; num++) { attribute = customAttributes[num] as Attribute; if (attribute is IInvocationResultHandler) { (attribute as IInvocationResultHandler).HandleResult(invocationManager, this._methodInfo, obj, arguments, result); } } return(invocationManager.Result); } return(result); }