[英]How to register singleton on Autofac
我在.Net Core 2.0
Web应用程序中使用Autofac
进行依赖注入。 我是Autofac
和依赖注入概念的Autofac
。
现在,我想在DI
注册一个单例并在DI容器中解析它。
C#代码[接口]
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和依赖注入的新手,我想知道如何在autofac中注册Singleton。
任何帮助将受到高度赞赏...... !!
谢谢
c.Resolve<IMongoDbContext>
应该:
c.Resolve<IMongoDbContext>()
你忘了调用/调用这个函数。
我无法弄清楚,为什么你注入手动IMongoDataContext
注册时DemoRepository
。 它不是反转控制工具的主要目的吗? 我想,你应该改变你的方法;
builder.RegisterType<DemoRepository>().As<IDemoRepository>();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.