所以我想做的就是......
[Name("MY_CLASS")]
public class MyClass : IMyInterace {...}
或者
public class MyClass : IMyInterace {
string Name => "MY_CLASS"; // part of interface
}
然后在autofac中的东西像...
builder.RegisterAssemblyTypes(asm)
.Where(...) // lazy typing that properly
.Named<IMyInterface>(x => x.Name);
这有可能吗?
PS:我意识到我可以将这些实现注册为命名服务,但这有两个缺点:
答案 0 :(得分:0)
也许您应该考虑另一种方式,编写代码来查找可用的类(反射?),并在满足条件时运行builder.RegisterType