Я хочу иметь услугу, как следующийКак использовать завод, чтобы решить интерфейс, используя Autofac
public SomeService(IMongoDatabase mongoDatabase) {
DB = mongoDatabase;
}
, и я хочу использовать фабрику для того чтобы разрешить IMongoDatabase
, просто инкапсулировать IConfiguration
использование
public static IMongoDatabase GetMongoDatabase(IConfiguration config)
{
var connectionString = config.Get("SomeConnectionString");
// MongoClient handles connection pooling internally
var client = new MongoClient(connectionString);
var db = client.GetDatabase(config.Get("SomeDbName"));
return db;
}
Я не могу понять, как обращаться с регистрациями, так что MongoDbFactory.GetMongoDatabase
вызывается, когда любой класс нуждается в IMongoDatabase
. IConfiguration
будет уже зарегистрирован.
Я бы очень хотел использовать IMongoDatabase
, а не Func<IConfiguration, IMongoDatabase>
в моей службе. Последнее просто кажется слишком тупым, требуя от потребителей выполнения шагов, которые я должен реализовать для них.
Это именно то, что я искал. Благодарю. –