849bdcd089
- Removed BindingType enum and all related logic from Binding. - Made Binding implement new IBinding and IKeyed interfaces. - Moved node selection logic to IBinding.Select; removed Resolve* methods from Binding. - Added new IBinding interface for XPath/CssPath selection. - Refactored IDataProvider to generic IDataProvider<T>; removed GetNode. - Updated ListContentDataProvider and ParagraphedContentDataProvider to use IBinding. - Added new ContentsDataProvider, ContentsArrayDataProvider, and DropDownDataProvider for flexible data extraction. - Updated DataBindings to use IDataProvider<T> properties instead of Binding. - Updated all usages to new interfaces and patterns.
14 lines
573 B
C#
14 lines
573 B
C#
using HtmlAgilityPack;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace Beam.Dynamic {
|
|
[JsonDerivedType(typeof(ParagraphedContentDataProvider), "paragraphed")]
|
|
[JsonDerivedType(typeof(ListContentDataProvider), "list")]
|
|
[JsonDerivedType(typeof(ContentsArrayDataProvider), "array")]
|
|
[JsonDerivedType(typeof(ContentsDataProvider), "single")]
|
|
[JsonDerivedType(typeof(DropDownDataProvider), "dropdown")]
|
|
public interface IDataProvider<T> {
|
|
public T Get(HtmlDocument document);
|
|
//public HtmlNode? GetNode(HtmlDocument document);
|
|
}
|
|
} |