Esempio n. 1
0
        /// <summary>
        /// 注册
        /// </summary>
        /// <param name="assembly">程序集实例。</param>
        public static void Register(System.Reflection.Assembly assembly)
        {
            if (assembly == null)
            {
                return;
            }
            var attributes = AttributeExtensions.GetCustomAttributes <ProviderAttribute>(assembly, true);

            foreach (var item in attributes)
            {
                if (string.IsNullOrEmpty(item.Name) || item.Type == null)
                {
                    continue;
                }
                _list_cache.TryAdd(item.Name, FastWrapper.CreateInstance <IProvider>(item.Type, new object[0]));
            }
        }
Esempio n. 2
0
 /// <summary>
 /// 加载。
 /// </summary>
 /// <param name="list">用于存储的列表。</param>
 /// <param name="attributeProvider">特性提供者。</param>
 public static void Load(ParameterInfoList list, System.Reflection.ICustomAttributeProvider attributeProvider)
 {
     if (list == null || attributeProvider == null)
     {
         return;
     }
     foreach (var attribute in AttributeExtensions.GetCustomAttributes <CloudArgsAttribute>(attributeProvider, true))
     {
         if (attribute.Type == null)
         {
             continue;
         }
         list.AddRange(PropertyParameterInfo.As(
                           FastWrapper.GetProperties(attribute.Type, System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance, true, true)
                           )
                       );
     }
 }