kotlinx.serialization:注入本地参数

kotlinx.serialization:注入本地参数,kotlin,serialization,dependency-injection,kotlinx.serialization,Kotlin,Serialization,Dependency Injection,Kotlinx.serialization,在反序列化过程中,我需要向类构造函数注入一个局部值。例如,看看下面的类 @Serializable 类SomeClass(val local:Context,val serialized:String) 我希望在序列化期间跳过字段local,并在反序列化期间用一些预定义的本地值替换 背后的原因是我将通过网络传输模型,但是这些模型上的操作依赖于我想要注入的本地上下文 因为我还没有找到任何标准的方法来实现它,所以我决定使用上下文序列化。因此,我编写了序列化程序: class ContextualI

在反序列化过程中,我需要向类构造函数注入一个局部值。例如,看看下面的类

@Serializable
类SomeClass(val local:Context,val serialized:String)
我希望在序列化期间跳过字段
local
,并在反序列化期间用一些预定义的本地值替换

背后的原因是我将通过网络传输模型,但是这些模型上的操作依赖于我想要注入的本地上下文

因为我还没有找到任何标准的方法来实现它,所以我决定使用上下文序列化。因此,我编写了序列化程序:

class ContextualInjectorSerializer(private val localValue:T):KSerializer{
重写val描述符=串行描述符(“ValueInjection”,StructureKind.OBJECT)
重写有趣的反序列化(解码器:解码器):T{
decoder.beginStructure(描述符).endStructure(描述符)
返回本地值
}
重写有趣的序列化(编码器:编码器,值:T){
encoder.beginStructure(描述符).endStructure(描述符)
}
}
并以这种方式使用它:

//上下文标记为@Serializable(with=ContextSerializer::class)
val json=json(JsonConfiguration.Stable,SerializerModule{
上下文(上下文::类,ContextAlinjectorSerializer(上下文))
})
//序列化/反序列化
令人惊讶的是,它在JVM上运行得非常好。然而,当我把它编译成JS并进行测试时,我得到了
TypeError:无法读取未定义的属性“siteId”
。这里
siteId
是我试图访问的上下文字段

是否有标准的方法来注入本地参数?我的把戏怎么了