| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- using System;
- namespace TeamAAS.Database.Attributes
- {
- /// <summary>
- /// 数据库提供者特性。
- /// 标注在 IDatabase 实现类上,用于反射发现和注册。
- /// </summary>
- [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
- public class DatabaseProviderAttribute : Attribute
- {
- /// <summary>
- /// 提供者类型标识(小写,如 mysql、sqlite、sqlserver)
- /// </summary>
- public string ProviderType { get; }
- /// <summary>
- /// 显示名称
- /// </summary>
- public string DisplayName { get; set; }
- /// <summary>
- /// 是否需要服务器地址(文件型数据库如 SQLite 为 false)
- /// </summary>
- public bool RequiresServer { get; set; } = true;
- /// <summary>
- /// 描述
- /// </summary>
- public string Description { get; set; }
- /// <summary>
- /// 提供者专属「配置/调试页」类型(必须是 System.Windows.FrameworkElement 子类,建议实现
- /// TeamAAS.Database.UI.IDatabaseConfigPage 以接收产品数据库实例)。
- /// 为 null(默认)时宿主使用内置通用页 DefaultDatabaseConfigPage。
- /// 用法:[DatabaseProvider("mysql", ConfigPageType = typeof(MySqlConfigPage))]
- /// </summary>
- public Type ConfigPageType { get; set; }
- public DatabaseProviderAttribute(string providerType)
- {
- ProviderType = providerType?.ToLowerInvariant() ?? throw new ArgumentNullException(nameof(providerType));
- DisplayName = providerType;
- }
- }
- }
|