扫描和覆盖使用WithParameter的autofac注册

时间:2011-11-30 18:29:22

标签: autofac

作为autofac初始化的一部分,我扫描程序集列表并注册符合命名约定的任何服务:MyClass:IMyClass。这减少了我的注册码数量,所以我真的不想消除这个功能。问题是我有几个类要使用一些特定的初始化数据进行注册。我正在扫描过程之后使用类似的东西注册这些:

builder.RegisterType<MyClass>().As<IMyClass>().WithParameter("initData", value)

当我检查容器时,我可以看到两个注册,一个来自扫描过程,另一个是指定参数。这是正确的行为吗?我想要autofac来替换IMyClass的扫描注册。如何使用提供的参数让autofac使用注册?

谢谢,

1 个答案:

答案 0 :(得分:1)

容器将保留两个注册,但仅使用最后一次注册。您是否进行过测试以验证您期望的行为?这些方面的东西:

var my = container.Resolve<IMyClass>();
Assert.That(my.Data, Is.EqualTo("initData"));
相关问题