/// <summary> /// 创建层叠选择器 /// </summary> /// <param name="relativeSelector">前置关系选择器</param> /// <param name="selector">右选择器</param> /// <returns></returns> public static ISelector Create(CssRelativeSelector relativeSelector, ISelector selector) { if (relativeSelector == null) { throw new ArgumentNullException("relativeSelector"); } if (selector == null) { throw new ArgumentNullException("selector"); } var elementSelector = selector as CssElementSelector; if (elementSelector != null) { return(new CssCasecadingSelector(relativeSelector, elementSelector)); } var casecadingSelector = selector as CssCasecadingSelector; if (casecadingSelector != null) { return(Combine(relativeSelector, casecadingSelector)); } var multipleSelector = selector as CssMultipleSelector; if (multipleSelector != null) { return(CssMultipleSelector.Combine(relativeSelector, multipleSelector)); } throw new NotSupportedException(); }
public static ICssSelector Combine( CssRelativeSelector relativeSelector, CssMultipleSelector multipleSelector ) { return new CssMultipleSelector( multipleSelector._selectors.Select( selector => CssCasecadingSelector.Create( relativeSelector, selector ) ).ToArray() ); }
public static ICssSelector Combine(CssRelativeSelector relativeSelector, CssMultipleSelector multipleSelector) { return(new CssMultipleSelector(multipleSelector._selectors.Select(selector => CssCasecadingSelector.Create(relativeSelector, selector)).ToArray())); }