首页 新闻 会员 周边 捐助

高手们,求教 autofac传入参数问题,分不够再给

0
悬赏园豆:200 [已解决问题] 解决于 2016-12-31 09:13

builder.RegisterType<CustomerEntities>().
As<DbContext>().WithParameter("nameOrConnectionString", 动态获取参数(参数随时变化)).
InstancePerRequest();

[秦时明月]的主页 [秦时明月] | 小虾三级 | 园豆:738
提问于:2016-12-22 09:19
< >
分享
最佳答案
0

.WithParameter((p,c)=>string.Equals(p.Name,"nameOrConnectionString"), (p,c)=>{你动态参数变化的逻辑})

收获园豆:200
Daniel Cai | 专家六级 |园豆:10424 | 2016-12-22 12:22
其他回答(2)
0

z怎么个随时变化.不是注册完就不变了吗.要随时变化自己new啊..

吴瑞祥 | 园豆:29449 (高人七级) | 2016-12-22 09:27

也就是说连接字符串随时变化的.

支持(0) 反对(0) [秦时明月] | 园豆:738 (小虾三级) | 2016-12-22 09:27

@[秦时明月]: 你这个方式是在注册时执行的.一执行完就完了.不可能变得

应该有那种方法构造的.就是注册一个方法.每次获取新对象时都执行一次.在那方法里执行你要的代码

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2016-12-22 09:32

@吴瑞祥: 求赐教

支持(0) 反对(0) [秦时明月] | 园豆:738 (小虾三级) | 2016-12-22 09:32

@[秦时明月]: ...我这不是已经说的很清楚了..算了你等会儿把.我去帮你百度.

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>();

下面这一行就可以满足你的需求

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2016-12-22 09:35
0

请问这个问题怎么解决的 ?

Zero_Alone | 园豆:204 (菜鸟二级) | 2019-02-26 16:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册