【问题标题】:Abstract Settings Configuration in ASP.NET CoreASP.NET Core 中的抽象设置配置
【发布时间】: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


【解决方案1】:

我认为这里的问题是您想将 JSON 数组映射到 C# List&lt;T&gt;

我要做的就是把我的代码改成这样:

public class ServiceSettings
{
    ComponentSettingsBase[] Components { get; set; }
}

我可能错了,但是... 接下来我会尝试去另一个方向,并且

  • 在内存中构建示例对象模型
  • 将其序列化为 JSON
  • 查看 JSON 的外观以了解您的环境喜欢的格式
  • 以您在上一步中学到的格式复制您需要的内容

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    相关资源
    最近更新 更多