builder.RegisterModule(new ConfigurationSettingsReader("autofac"));
builder.RegisterInstance(user).As<User>();
builder.Register(c => new DatabaseManager(c.Resolve<IDatabase>(), c.Resolve<User>()));
using (var container = builder.Build())
{
var manager = container.Resolve<DatabaseManager>();
manager.Add("INSERT INTO USER ...");
}
运行结果:

分析:
复制代码
builder.RegisterInstance(user).As<User>();注册User实例。
builder.Register(c => new DatabaseManager(c.Resolve<IDatabase>(), c.Resolve<User>()));通过Lampda表达式注册
DatabaseManager实例。
如果这里我修改User的属性值:
复制代码
User user = new User { Id = 2, Name = "zhangsan" };
运行结果:

说明该用户无权限操作。
以上就是本文的全部内容,希望大家喜欢。