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("libFLAC", "flac")] ///public class MyDecoder : IAudioSource { /// ... ///} /// [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] public sealed class AudioDecoderClass : Attribute { private string _decoderName, _extension; public string DecoderName { get { return _decoderName; } } public string Extension { get { return _extension; } } public AudioDecoderClass(string decoderName, string extension) { _decoderName = decoderName; _extension = extension; } } }