using System;
using System.Reflection;
namespace Chernobyl.Attribution
{
///
/// An that is applied to an .
/// When executed, instances of this type will execute any the
/// types found on
/// any types of the assembly attributed.
///
[AttributeUsage(AttributeTargets.Assembly)]
public class ProcessTypesAttribute : Attribute, IProcessAttribute
{
///
/// Performs the task requested on the
/// passed in.
///
/// The
/// this was applied to and that is to be
/// processed.
public void Process(Assembly attributeProvider)
{
attributeProvider.GetTypes().Process(Inherited);
}
///
/// True if this instance should look up the hierarchy chain of each
/// for
/// attributes.
///
public bool Inherited { get; set; }
}
}