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