public SmartFormatterLiteralCharacterExtractor(SmartFormatter parent) { Settings = parent.Settings; Parser = parent.Parser; SourceExtensions.AddRange(parent.SourceExtensions); FormatterExtensions.AddRange(parent.FormatterExtensions); }
/// <summary> /// Adds each extensions to this formatter. /// Each extension must implement ISource. /// </summary> /// <param name="sourceExtensions"></param> public void AddExtensions(params ISource[] sourceExtensions) { SourceExtensions.InsertRange(0, sourceExtensions); }
/// <summary> /// Searches for a Source Extension of the given type, and returns it. /// This can be used to easily find and configure extensions. /// Returns null if the type cannot be found. /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns> public T?GetSourceExtension <T>() where T : class, ISource { return(SourceExtensions.OfType <T>().FirstOrDefault()); }