静态设置模式与类型化读取
定义插件静态设置模式,读取类型化快照,并在更新失败时保留已知良好的运行状态。
API 3.9 的设置是安装包静态数据。manifest 的 settingsSchema 指向 JSON 文件;安装校验无需执行插件。Host 渲染界面、验证候选并事务化重激活,不让无效设置覆盖已知良好配置。
模式格式
{"schemaVersion":1,"settings":[{"key":"EnabledFeature","type":"boolean","default":true,"required":false,"displayName":"启用示例功能","localizedDisplayName":{"en-US":"Enable example feature"}}]}
schemaVersion 当前只支持 1。key 必须合法且唯一;default 必须匹配声明类型;required 是 JSON 布尔值。settings 即使为空也必须是数组。
| type | JSON 值 | 用途 |
|---|---|---|
string | string | 单行文本 |
boolean | true/false | 布尔开关 |
integer | Int64 整数 | 数值 |
multiline | string | 多行文本 |
folderPath | string | 文件夹路径 |
filePath | string | 文件路径 |
enum | string | 必须匹配非空且不重复的 enumValues |
支持 displayName、description、localizedDisplayName、localizedDescription。显示文案可修改,key 应保持稳定。
读取
以下为激活方法内的片段,settings 是 context.Settings.Values:
bool enabled = settings.TryGetValue("EnabledFeature", out var value)
&& value.GetBoolean();
不是字符串字典,不要手动接受 "1" 或 "true" 来绕过布尔校验。未知键以警告保留;缺失项使用合法默认值,required 缺失且无默认值时拒绝。设置与 Provider State 是不同的数据模型。
更新验收
保存非法类型应失败并保留原值。激活新设置失败时应保留/恢复已知良好状态,检查诊断与运行状态。取消或停用超时需要遵循 Host 的 RequiresRestart 提示。