有可能吗? 我想做到这样的事情;
cntBld.RegisterNotRegisteredCallback(type => return /* custom factory of type */);
我的意思是 - 如果type没有注册explicite我想创建自己的实例。
答案 0 :(得分:0)
您提到的外部工厂是否使用Autofac?如果没有,你的问题没有意义,解决方案是:
builder.Register(c => externalFactory.Instance).As<Whatever>();
如果您提到的外部工厂使用Autofac,则外部实例应该可以通过传递给Register方法的组件上下文进行解析:
builder.Register(c => {
var externalThing = c.Resolve<IExternalThing>() ?? new ExternalThing();
return externalThing;
}).As<Whatever>();