using System; using System.Collections.Generic; using System.Linq; namespace Blue { /// /// 注入规则属性---可以对接口应用属性 /// [AttributeUsage(AttributeTargets.Interface)] public class InjectRuleAttribute : Attribute { private List canInjectList; private Type baseInjectType; public InjectRuleAttribute(params Type[] canInject) { baseInjectType = typeof(ICanInject); canInjectList = new List(canInject.Length); foreach (var item in canInject) { if (item.GetInterfaces().Contains(baseInjectType)) { canInjectList.Add(item); } } } public List GetCanInjectList() { return canInjectList; } public bool IfCanInject(Type canInject) { if (canInjectList.Contains(canInject)) { return true; } return false; } } }