【发布时间】:2019-08-14 14:18:04
【问题描述】:
我有一个 ASP.NET Core 应用程序,它可以包含不同类型的组件。这些类型直到运行时才知道。我有一组属于类型分类的设置,以及一个存储配置组件集合的顶级设置对象。例如,
public class ServiceSettings
{
List<ComponentSettingsBase> Components { get; set; }
}
public abstract class ComponentSettingsBase
{
}
public class ASettings : ComponentSettingsBase { get; set; }
public class BSettings : ComponentSettingsBase { get; set; }
使用 Json 文件,我可以创建基本 ServiceSettings 对象并将其正确映射为字符串等简单类型。当涉及到集合时,它只是忽略它。我已经尝试添加像 Json.NET (Newtonsoft) 这样的类型信息来处理类型名称,但还没有找到任何地方来配置它应该如何反序列化。我以为那是他们过去使用的,用于 Web API 通信的 Json 序列化程序有简单的配置设置,但这似乎不影响设置/配置序列化。
有没有一种方法可以使用内置的设置提供程序来做到这一点?还是我需要做一些事情,比如使用设置提供程序指向另一个文件,然后使用更成熟的 Json 反序列化器来反序列化设置?
【问题讨论】:
-
如果有帮助,配置提供程序中负责读取的部分是here。
标签: c# json asp.net-core