AngleSharp by AngleSharp

<PackageReference Include="AngleSharp" Version="0.9.8.1" />

.NET API 1,214,976 bytes

 CssNamespaceRule

Represents an @namespace rule.
using AngleSharp.Extensions; using AngleSharp.Parser.Css; using System.IO; namespace AngleSharp.Dom.Css { internal sealed class CssNamespaceRule : CssRule, ICssNamespaceRule, ICssRule, ICssNode, IStyleFormattable { private string _namespaceUri; private string _prefix; public string NamespaceUri { get { return _namespaceUri; } set { CheckValidity(); _namespaceUri = (value ?? string.Empty); } } public string Prefix { get { return _prefix; } set { CheckValidity(); _prefix = (value ?? string.Empty); } } internal CssNamespaceRule(CssParser parser) : base(CssRuleType.Namespace, parser) { } protected override void ReplaceWith(ICssRule rule) { CssNamespaceRule cssNamespaceRule = rule as CssNamespaceRule; _namespaceUri = cssNamespaceRule._namespaceUri; _prefix = cssNamespaceRule._prefix; base.ReplaceWith(rule); } public override void ToCss(TextWriter writer, IStyleFormatter formatter) { string str = string.IsNullOrEmpty(_prefix) ? string.Empty : " "; string value = _prefix + str + _namespaceUri.CssUrl(); writer.Write(formatter.Rule("@namespace", value)); } private static bool IsNotSupported(CssRuleType type) { if (type != CssRuleType.Charset && type != CssRuleType.Import) return type != CssRuleType.Namespace; return false; } private void CheckValidity() { ICssRuleList cssRuleList = base.Owner?.Rules; if (cssRuleList != null) { foreach (ICssRule item in cssRuleList) { if (IsNotSupported(item.Type)) throw new DomException(DomError.InvalidState); } } } } }