我知道如何使用Autofac,而不是使用Castle。
public interface IAmBaseInterface {}
public interface IAmInterface : IAmBaseInterface {...}
public class AmClass : IAmInterface {...}
我想使用IAmBaseInterface注册实现AmClass(和任何其他实现)。这可能吗? 我尝试了以下但没有注册类型。
container.Register(Classes.FromThisAssembly().BasedOn<IAmBaseInterface>()
.WithServiceAllInterfaces();
尝试过这与AutoFac类似,但没有成功。
container.Register(Classes.FromThisAssembly()
.Where(t => typeof(IAmBaseInterface).IsAssignableFrom(t)).WithService.AllInterfaces();
答案 0 :(得分:0)
我意识到我在代码中使用了Classes.From(Type [] ...),而不是像示例中的Classes.FromThisAssembly一样。显然,它不会扫描多个程序集以根据实现进行查找。我还发现它不会扫描多个程序集以查找内部实现,但这是一个侧面说明。