builder.RegisterType<CustomerEntities>().
As<DbContext>().WithParameter("nameOrConnectionString", 动态获取参数(参数随时变化)).
InstancePerRequest();
.WithParameter((p,c)=>string.Equals(p.Name,"nameOrConnectionString"), (p,c)=>{你动态参数变化的逻辑})
z怎么个随时变化.不是注册完就不变了吗.要随时变化自己new啊..
也就是说连接字符串随时变化的.
@[秦时明月]: 你这个方式是在注册时执行的.一执行完就完了.不可能变得
应该有那种方法构造的.就是注册一个方法.每次获取新对象时都执行一次.在那方法里执行你要的代码
@吴瑞祥: 求赐教
@[秦时明月]: ...我这不是已经说的很清楚了..算了你等会儿把.我去帮你百度.
https://autofac.org/
var builder = new ContainerBuilder(); // Register individual components builder.RegisterInstance(new TaskRepository()) .As<ITaskRepository>(); builder.RegisterType<TaskController>(); builder.Register(c => new LogManager(DateTime.Now)) .As<ILogger>(); // Scan an assembly for components builder.RegisterAssemblyTypes(myAssembly) .Where(t => t.Name.EndsWith("Repository")) .AsImplementedInterfaces(); var container = builder.Build();
builder.Register(c => new LogManager(DateTime.Now)) .As<ILogger>();
下面这一行就可以满足你的需求
请问这个问题怎么解决的 ?