繁体   English   中英

C# 应用程序设置将对象数组绑定到 class

[英]C# appsetttings bind array of objects to class

我有这样的 int appsettings.js 部分:

 "AccessKeys": {
    "user1": {
      "pass": ""
    },

我在 C# 中创建了类,以将此部分绑定到这些类:

public class AccessKeys { public List Users = new List(); }

public class AccessKeyUserJson
{
    public AccessKeyUser AccessKeyUser { get; set; }
}

public class AccessKeyUser
{
    public string Pass { get; set; }
}

我在Startup.cs中绑定以上类:

  services.Configure<AppSettingsConfig>(Configuration);

AppSettingsConfig我有属性AccessKeys并且此属性已正确绑定但Users为空(0 项)


我改变了结构:

"AccessKeys": [
    {
      "user1": "",
      "pass": ""
    },
]

你为什么不尝试这样的事情:

using (var ms = new System.IO.MemoryStream(Encoding.Unicode.GetBytes(myJSONstring)))
{
    System.Runtime.Serialization.Json.DataContractJsonSerializer js = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(myStruct));
    myStruct aux = (myStruct)js.ReadObject(ms);
}

这是一种单级方法,老实说,我从未尝试在子分类方案中进行任何转换,但也许值得尝试。

如您所见,此处 JSON 字符串由 Memory Stream 获取,然后转换为最终的结构/类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM