在appsettingsjson文件中,我有:
"DataSource": {
"ConnectionString": "mongodb://localhost:27017",
"DatabaseName": "Root",
"CollectionName": "ApiLog"
},
在Program.cs中,我得到的数据如下所示
builder.Services.Configure<DatabaseSettings>(
builder.Configuration.GetSection("DataSource"));
其中数据库设置类为;
public class DatabaseSettings
{
public string ConnectionString { get; set; } = null!;
public string DatabaseName { get; set; } = null!;
public string CollectionName { get; set; } = null!;
}
然后我可以通过依赖注入访问DatabaseSettings的示例,如:
public class LogService
{
private readonly IMongoCollection<Log> _collection;
public LogService(
IOptions<DatabaseSettings> databaseSettings)
{
var mongoClient = new MongoClient(
databaseSettings.Value.ConnectionString);
var mongoDatabase = mongoClient.GetDatabase(
databaseSettings.Value.DatabaseName);
_collection = mongoDatabase.GetCollection<ElekseLog>(
databaseSettings.Value.CollectionName);
}
}
问题是我不想把数据库信息存储在应用程序设置的json文件中。我想从命令行传递信息而不改变代码。我该怎么做呢?
1条答案
按热度按时间f2uvfpb91#
您需要通过使用
:
连接“path元素”来“扁平化”参数,并作为键-值对传递。或者
一些信息可以在docs -命令行配置提供程序中找到。