protected object HandleAttributes(object instance, MemberInfo memberInfo, object result, object[] attributes) { 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, memberInfo, instance, null, 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, memberInfo, instance, null, result); } } return(invocationManager.Result); } return(result); }
public object Invoke(object obj, object[] arguments) { 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 async Task <object> Invoke(object obj, object[] arguments) { object result = null; if (_methodInfo.GetCustomAttribute(typeof(AsyncStateMachineAttribute)) == null) { result = _methodInfo.Invoke(obj, arguments); } else { Task task = (Task)_methodInfo.Invoke(obj, arguments); await task; result = task.GetType().GetProperty("Result").GetValue(task); } 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 !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); }