1
我是dotnet/c#中的newbiew并试图学习。我正在编写一个连接/ init到不同数据库的服务器应用程序。一个是MongoDB。那么我有一个配置微服务。我如何保存从配置服务器获得的连接字符串?从这些MongoDB example,我需要传递连接字符串。但我不想每次都从配置服务器获取它。如何在.NET Core中从启动时只设置一次数据库连接?
阅读here关于依赖注入的一些教程,不知道这是否真的是我需要的。
这里是我的试用代码..
我的ConfigService,我要设置或充当的getter/setter
public class Configctl : IDisposable
{
public static string env;
public Configctl()
{
env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
Console.WriteLine($"ASPNETCORE_ENVIRONMENT/env={env}");
}
public static void ConfigureMongodb()
{
Console.WriteLine($"configure mongodb..");
// var config = await getConfig()
}
}
MongdbContext
,我想,以填补从Configctl
的MongoUrl
没有从获得Configctl
每次。
public class MongdbContext<T> : IDisposable
{
public IMongoDatabase _database { get; }
public IMongoClient _client;
public MongdbContext()
{
var settings = MongoClientSettings.FromUrl(GetMongoURL());
_client = new MongoClient(settings);
_database = _client.GetDatabase("testdb");
}
public void Dispose()
{
Console.WriteLine("mongodb disposed");
}
public static MongoUrl GetMongoURL()
{
return new MongoUrl("mongodb://user:[email protected]:27017/admin");
}
}
和实验,我打过电话从ConfigureServices
Configctl
。我也许错了..
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton(new Configctl());
services.AddMvc();
}
这看起来很棒,很干净。我现在要试试这个。谢谢 – Hokutosei
这帮了很大忙。谢谢 :) – Hokutosei