簡體   English   中英

ASP.NET Core中的抽象設置配置

[英]Abstract Settings Configuration in ASP.NET Core

我有一個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反序列化器反序列化設置?

我認為這里的問題是您想將JSON數組映射到C# List<T>

我要做的就是將代碼更改為以下內容:

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

我可能是錯的,但是...接下來我要嘗試的是朝另一個方向前進

  • 在內存中建立示例對象模型
  • 序列化為JSON
  • 查看JSON的外觀,以了解您的環境喜歡的格式
  • 以您在上一步中學到的格式復制所需的內容

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM