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