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) { ... }`
}

NotSerializedBotConfigurationSerializableBotConfiguration 的一个特殊实现, 可在某些无法反序列化的情况下作为默认实现提供。

序列化器

目前仅建议使用下述的序列化器,因为它们支持将外层 SerializableBotConfigurationclassDiscriminator 重置为指定的 "component", 而不影响实现内的其他多态类型。 如果使用其他序列化器,需要使用 type 作为 classDiscriminator

JSON

当使用 JSON 序列化器时,class"component" 而不是 type

{
"component": "aaa.bbb",
...
}

Author

ForteScarlet

Inheritors

Constructors

Link copied to clipboard
constructor()