使用 dotnet user-secrets 存储字符串列表
using dotnet user-secrets to store a string list
我怎样才能保存这个:
"myList" : [ "file", "something" ]
在 dotnet 用户机密中?
我可以使用以下命令将其添加到用户机密:
dotnet user-secrets set --id my-id myList "[ \"file\", \"something\" ]"
但这被保存为字符串,并且与从 appsettings.json 中读取的行为不同。
在我看来,用户机密不支持 json 数组。这是正确的吗?
您可以直接编辑项目的“用户机密”。项目的用户机密保存在“secrets.json”文件中。文件位置在这里:
在 Windows 中:%Appdata%\Microsoft\UserSecrets\\secrets.json
在Linux中:~/.microsoft/usersecrets//secrets.json
基本上是项目用户机密的 GUID。您可以在 .csproj 文件中看到它,如下所示:
<UserSecretsId>16abe888-53cb-415c-9889-797efe87c422</UserSecretsId>
这是一个示例 secrets.json 文件:
{
"UserSecretsConfig" : {
"UserName1": "john.doe",
"Password1": "pppp",
"Domain": "company.local",
"Uri": "https://google.com/",
"ToEmails":["user1@example.com", "user2@example.com", "user3@example.com"]
}
}
这是示例用户机密的模型 class:
public class MyUserSecretsConfig
{
public string UserName1 { get; set; }
public string Password1 { get; set; }
public string Domain { get; set; }
public string Uri { get; set; }
public IEnumerable<string> ToEmails { get; set; }
}
这是在控制台应用程序中读取“用户机密”的示例代码:
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddUserSecrets<Program>();
var config = builder.Build();
MyUserSecretsConfig mySecrets = config.GetSection("UserSecretsConfig")
.Get<MyUserSecretsConfig>();
为了使上面显示的代码正常工作,您必须将这些包添加到您的项目中:
- Microsoft.Extensions.Configuration.Binder
- Microsoft.Extensions.Configuration.UserSecrets
此外,如果您将在 ASP.NET 核心应用程序中访问用户机密,请配置
可通过启动时注入获得 class。不需要 ConfigurationBuilder。
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
我怎样才能保存这个:
"myList" : [ "file", "something" ]
在 dotnet 用户机密中?
我可以使用以下命令将其添加到用户机密:
dotnet user-secrets set --id my-id myList "[ \"file\", \"something\" ]"
但这被保存为字符串,并且与从 appsettings.json 中读取的行为不同。
在我看来,用户机密不支持 json 数组。这是正确的吗?
您可以直接编辑项目的“用户机密”。项目的用户机密保存在“secrets.json”文件中。文件位置在这里:
在 Windows 中:%Appdata%\Microsoft\UserSecrets\
\secrets.json 在Linux中:~/.microsoft/usersecrets/
/secrets.json
<UserSecretsId>16abe888-53cb-415c-9889-797efe87c422</UserSecretsId>
这是一个示例 secrets.json 文件:
{
"UserSecretsConfig" : {
"UserName1": "john.doe",
"Password1": "pppp",
"Domain": "company.local",
"Uri": "https://google.com/",
"ToEmails":["user1@example.com", "user2@example.com", "user3@example.com"]
}
}
这是示例用户机密的模型 class:
public class MyUserSecretsConfig
{
public string UserName1 { get; set; }
public string Password1 { get; set; }
public string Domain { get; set; }
public string Uri { get; set; }
public IEnumerable<string> ToEmails { get; set; }
}
这是在控制台应用程序中读取“用户机密”的示例代码:
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddUserSecrets<Program>();
var config = builder.Build();
MyUserSecretsConfig mySecrets = config.GetSection("UserSecretsConfig")
.Get<MyUserSecretsConfig>();
为了使上面显示的代码正常工作,您必须将这些包添加到您的项目中:
- Microsoft.Extensions.Configuration.Binder
- Microsoft.Extensions.Configuration.UserSecrets
此外,如果您将在 ASP.NET 核心应用程序中访问用户机密,请配置 可通过启动时注入获得 class。不需要 ConfigurationBuilder。
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}