跳到主要内容

静态设置模式与类型化读取

定义插件静态设置模式,读取类型化快照,并在更新失败时保留已知良好的运行状态。

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 即使为空也必须是数组。

typeJSON 值用途
stringstring单行文本
booleantrue/false布尔开关
integerInt64 整数数值
multilinestring多行文本
folderPathstring文件夹路径
filePathstring文件路径
enumstring必须匹配非空且不重复的 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 提示。