SerializableBotConfiguration
基于 Kotlin Serialization
的 bot 可序列化配置。 实现 SerializableBotConfiguration 的第三方扩展类型必须至少标记 Serializable 并可基于 Kotlin Serialization
实现字符串格式的反序列化(kotlinx.serialization.StringFormat)。
同时,在对应的 Component.serializersModule 中提供以 SerializableBotConfiguration 为基准的多态序列化信息,例如:
@Serializable
@SerialName("foo")
private class FooBotConfiguration : SerializableBotConfiguration() {
var name: String? = null
}
// 多态序列化信息
val module = SerializersModule {
serializableBotConfigurationPolymorphic {
subclass(FooBotConfiguration.serializer())
}
// 或使用 `polymorphic(SerializableBotConfiguration::class) { ... }`
}
Content copied to clipboard
NotSerializedBotConfiguration 是 SerializableBotConfiguration 的一个特殊实现, 可在某些无法反序列化的情况下作为默认实现提供。
序列化器
目前仅建议使用下述的序列化器,因为它们支持将外层 SerializableBotConfiguration 的 classDiscriminator
重置为指定的 "component"
, 而不影响实现内的其他多态类型。 如果使用其他序列化器,需要使用 type
作为 classDiscriminator
。
JSON
当使用 JSON
序列化器时,class
为 "component"
而不是 type
。
{
"component": "aaa.bbb",
...
}
Content copied to clipboard
Author
ForteScarlet