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)); } } }
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); } } }