我在我的 .Net Core 2.0
网络应用程序中使用 Autofac
进行依赖注入(inject)。我是 Autofac
和依赖注入(inject)概念的新手。
现在,我想在 DI
中注册一个单例,并在 DI 容器中解析它。
C# 代码 [接口(interface)]
public interface IMongoDbContext
{
IMongoDatabase Database { get; }
}
类
public class MongoDbContext : IMongoDbContext
{
public MongoDbContext(string connectionString, string databaseName);
public string DatabaseName { get; }
public IMongoDatabase Database { get; }
public string ConnectionString { get; }
}
存储库类
public class DemoRepository : IDemoRepository
{
public DemoRepository(IMongoDataContext context)
{
}
}
现在,在.Autofac
builder.Register(c => new MongoDbContext(dbConnectionString, dataBaseName)).As<IMongoDbContext>().SingleInstance();
//dbConnectionString and dataBaseName are string variables declared above.
// and then to Resolve it
builder.Register(c => new DemoRepository(c.Resolve<IMongoDbContext>)).As<IDemoRepository>();
// but in above line it shows error at `c.Resolve<IMongoDbContext>` it shows `cannot convert from 'method group' to 'IMongoDbContext'`
谁能帮我解决这个问题。我是 autofac 和依赖注入(inject)的新手,我想知道如何在 autofac 中注册 Singleton。
任何帮助将不胜感激......!!
谢谢
最佳答案
c.Resolve<IMongoDbContext>
应该是:
c.Resolve<IMongoDbContext>()
您忘记调用/调用该函数。
关于c# - 如何在 Autofac 上注册单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47749229/