Esempio n. 1
0
 protected object HandleAttributes(object instance, MemberInfo memberInfo, object result, object[] attributes)
 {
     if (attributes != null && attributes.Length > 0)
     {
         var invocationManager = new InvocationManager();
         invocationManager.Result = result;
         for (var i = 0; i < attributes.Length; i++)
         {
             var attribute = attributes[i] as Attribute;
             if (attribute is IInvocationCallback)
             {
                 var invocationCallback = attribute as IInvocationCallback;
                 invocationCallback.OnInvoked(invocationManager, memberInfo, instance, null, result);
             }
         }
         for (var i = 0; i < attributes.Length; i++)
         {
             var attribute = attributes[i] as Attribute;
             if (attribute is IInvocationResultHandler)
             {
                 var invocationResultHandler = attribute as IInvocationResultHandler;
                 invocationResultHandler.HandleResult(invocationManager, memberInfo, instance, null, result);
             }
         }
         return(invocationManager.Result);
     }
     return(result);
 }
Esempio n. 2
0
		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;
		}
Esempio n. 3
0
 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;
 }