gpt4 book ai didi

.net - .Net 中的接口(interface)和 JSON 序列化

转载 作者:行者123 更新时间:2023-12-04 22:46:45 25 4
gpt4 key购买 nike

.Net 是否有任何 JSON 库允许我序列化/反序列化包含接口(interface)的类:

 public class MyClass
{
public IMyInterface1 Property1 {get;set;}
public IMyInterface2 Property2 {get;set;}
}

我意识到反序列化需要具体的类,所以我假设它们需要通过属性或作为方法调用的一部分来指定。

编辑:一个额外的要求 - 它不应该依赖于 JSON 上的任何标记或特殊属性进行序列化/反序列化,因为有时我需要从第 3 方读取 JSON。

最佳答案

托管使用 jayrock 执行此操作.您只需要创建一个像这样的映射类:

public class InterfaceImporter<TInterface, TClass> : IImporter where TClass : TInterface
{
public object Import(ImportContext context, JsonReader reader)
{
return(context.Import<TClass>(reader));
}

public Type OutputType
{
get { return (typeof(TInterface)); }
}
}

然后使用此代码将接口(interface)映射到适当的类并反序列化:
ImportContext context = new ImportContext();

context.Register(new InterfaceImporter<IMyInterface1, MyClass1>());
context.Register(new InterfaceImporter<IMyInterface2, MyClass2>());

MyClass deserialized = context.Import<MyClass>(JsonText.CreateReader(json));

关于.net - .Net 中的接口(interface)和 JSON 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7236796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com