Class MultiFileDataSource<TKey, TData, TLoader>
Represents a multi-file data source that scans all plugin directories for matching database files and merges them. Files are loaded in alphabetical order by plugin name, with later files overwriting earlier ones on key conflicts.
public abstract class MultiFileDataSource<TKey, TData, TLoader> : MapDataSource<TKey, TData, TLoader>, IDataSource<TKey, TData, TLoader>, IDataSource<TKey, TData>, IDataSource, IDataCrud, IDataCrud<TKey, TData> where TKey : notnull where TData : IData where TLoader : IDataStreamLoader<TKey, TData>
Type Parameters
TKeyKey type for the data source, must be not null.
TDataData type for the data source, must implement IData interface.
TLoaderLoader type for the data source, must implement IDataStreamLoader interface.
- Inheritance
-
DataSource<TKey, TData, TLoader>MapDataSource<TKey, TData, TLoader>MultiFileDataSource<TKey, TData, TLoader>
- Implements
-
IDataSource<TKey, TData, TLoader>IDataSource<TKey, TData>IDataCrud<TKey, TData>
- Inherited Members
- Extension Methods
Constructors
MultiFileDataSource(string?, string?)
Represents a multi-file data source that scans all plugin directories for matching database files and merges them. Files are loaded in alphabetical order by plugin name, with later files overwriting earlier ones on key conflicts.
protected MultiFileDataSource(string? fileName = null, string? extension = "json")
Parameters
fileNamestringFile name of the data source, without extension.
extensionstringFile extension of the data source, default is "json".
Properties
Extension
public string? Extension { get; }
Property Value
FileName
public string? FileName { get; set; }
Property Value
IgnoreMissingFiles
public virtual bool IgnoreMissingFiles { get; }
Property Value
Methods
Initialize(IDatabase<TKey, TData>)
public override void Initialize(IDatabase<TKey, TData> database)
Parameters
databaseIDatabase<TKey, TData>
Load(IDatabase<TKey, TData>, TLoader)
public override void Load(IDatabase<TKey, TData> database, TLoader loader)
Parameters
databaseIDatabase<TKey, TData>loaderTLoader
Verify(IDatabase<TKey, TData>)
public override void Verify(IDatabase<TKey, TData> database)
Parameters
databaseIDatabase<TKey, TData>