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