using System; namespace CUETools.Codecs { /// /// This class provides an attribute for marking /// classes that provide . /// /// /// When plugins with classes that provide are /// registered, their attributes are read. /// /// /// using CUETools.Codecs; /// ///[AudioDecoderClass(typeof(MyDecoderSettings))] ///public class MyDecoder : IAudioSource { /// ... ///} /// [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] public sealed class AudioDecoderClassAttribute : Attribute { public Type Settings { get; private set; } public AudioDecoderClassAttribute(Type settings) { Settings = settings; } } }