示例#1
0
 public static void RegisterInvoker(InvokerAttribute invoker)
 {
     var propertyInfo = TypeHelper.GetPropertyInfo(invoker.TargetType, invoker.PropertyName);
     if (propertyInfo != null)
     {
         if (invoker.InvokerType.IsGenericType
             || invoker.TargetType.IsGenericTypeDefinition)
         {
             var token = MetadataToken.GetToken(propertyInfo);
             cacheGenericInvokers[token] = invoker.InvokerType;
         }
         else
         {
             RegisterInvoker(propertyInfo, (IInvoker)Activator.CreateInstance(invoker.InvokerType));
         }
     }
 }
示例#2
0
        public static void RegisterInvoker(Type type, InvokerAttribute invoker)
        {
            var propertyInfo = TypeHelper.GetPropertyInfo(invoker.TargetType, invoker.PropertyName);

            if (propertyInfo != null)
            {
                var token = GetToken(propertyInfo);
                if (type.IsGenericType)
                {
                    cacheInvokers[token] = (IInvoker)Activator.CreateInstance(type.MakeGenericType(invoker.TargetType));
                }
                else
                {
                    cacheInvokers[token] = (IInvoker)Activator.CreateInstance(type);
                }
            }
        }