我目前正在为我们公司测试 Autofac。
我们希望有以下规则:
如果一个接口只实现了一次,则使用 builder.RegisterAssemblyTypes 自动添加它(见下文)。
否则,我们需要确保手动编写将决定哪个实现是“默认”实现的规则。
我有以下代码:
var builder = new ContainerBuilder();
builder.RegisterAssemblyTypes(Assembly
.Load("Lunch.Service")).As(t => t.GetInterfaces()[0]);
builder.RegisterType<ConsoleLoggerService>()
.As<ILoggerService>().SingleInstance();
builder.RegisterModule(new DestinationModule());
builder.RegisterType<TransportationService>()
.As<ITransportationService>().PropertiesAutowired();
现在,它正在工作,但它决定了第一个实现是哪个,并将自动创建它。如果我们不手动创建“规则”,我们希望将其设为手动过程并引发错误。这可能吗?