我有secret.json
如下。我使用Secret Manager工具来显示secret.json
。
{
"Users": [
{
"UserName": "xxx@yyy.zzz",
"Email": "xxx@yyy.zzz",
"Password": "$aA12345"
},
{
"UserName": "aaa@bbb.ccc",
"Email": "aaa@bbb.cc",
"Password": "$aA12345"
}
]
}
在Seed.Initialize
我想使用动态获得的数组Todos
的长度而不是硬代码。
public static class Seed
{
public static void Initialize(IConfiguration configuration, UserManager<ApplicationUser> userManager)
{
context.Database.Migrate();
if(!userManager.Users.Any())
{
for (int i = 0; i < 2; i++)
{
ApplicationUser user = new ApplicationUser
{
UserName = configuration[$"Users:{i}:Username"],
Email = configuration[$"Users:{i}:Email"]
};
userManager.CreateAsync(user, configuration[$"Users:{i}:Password"]).Wait();
}
}
}
}
如何使用IConfiguration
获取JSON数组的长度?换句话说,我想写一些类似
for (int i = 0; i < configuration["Users"].Blablabla(); i++)
答案 0 :(得分:3)
您可以创建一个与您的结构匹配的类,如:
public class User
{
public string UserName { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public TodoItem[] Todos { get; set; }
}
public class TodoItem
{
public string Todo { get; set; }
public DateTime DueDate { get; set; }
}
然后将其作为强类型数组:
User[] users = configuration.GetSection("Users").Get<User[]>();
你可以用这个来弄清楚如何制作循环:)