コード例 #1
0
        public static TResult Invoke <TKey, TResult, TParam, TParam2>(this IMarkedExtendable obj, TKey key, TParam param, TParam2 param2)
        {
            TResult result = default(TResult);

            InvokeOnMap(() => result = (TResult)AttributeMap().Invoke(obj, key, param, param2),
                        obj, key, typeof(TResult), param, param2);
            return(result);
        }
コード例 #2
0
 static void InvokeOnMap(Action _do, IMarkedExtendable obj, object key, Type returnType, params object[] parameters)
 {
     if (AttributeMap().CanInvoke(obj, key, returnType, parameters))
     {
         _do();
     }
     else
     if (!ObjectExtenderConfig.IgnoreException)
     {
         Throw(obj, key);
     }
 }
コード例 #3
0
 public static void RegisterAsyncAction <TKey, TParam, TParam2>(this IMarkedExtendable obj, TKey key, Func <TParam, TParam2, Task> func)
 => throw new NotImplementedException();
コード例 #4
0
 public static void RegisterFuncAsync <TKey, TResult, TParam>(this IMarkedExtendable obj, TKey key, Func <TParam, Task <TResult> > func)
 => throw new NotImplementedException();
コード例 #5
0
 public static Task <TResult> InvokeAsync <TKey, TResult, TParam, TParam2>(this IMarkedExtendable obj, TKey key, TParam param, TParam2 param2)
 => throw new NotImplementedException();
コード例 #6
0
 public static Task CallAsync <TKey, TParam>(this IMarkedExtendable obj, TKey key, TParam param)
 => throw new NotImplementedException();
コード例 #7
0
 static void Throw(IMarkedExtendable obj, object key) => throw new AttributeNotFoundException(obj.GetType(), key);
コード例 #8
0
        public static void Call <TKey, TParam, TParam2>(this IMarkedExtendable obj, TKey key, TParam param, TParam2 param2)
        {
            var args = new object[] { param, param2 };

            InvokeOnMap(() => AttributeMap().Invoke(obj, key, args), obj, key, null, args);
        }
コード例 #9
0
        public static void Call <TKey>(this IMarkedExtendable obj, TKey key)
        {
            var args = new IMarkedExtendable[] { };

            InvokeOnMap(() => AttributeMap().Invoke(obj, key, args), obj, key, null, args);
        }