我有一些使用强类型元数据注册类型的代码。它看起来像这样:
class Foo { }
public interface IFooMetadata
{
int Position { get; }
}
[TestFixture]
public class MyTestFixture
{
[Test]
public void Test()
{
var builder = new ContainerBuilder();
builder.RegisterType<Foo>()
.AsSelf()
.WithMetadata<IFooMetadata>(m => m.For(x => x.Position, 1));
using (var container = builder.Build())
{
var fooWithMeta = container.Resolve<Meta<Foo, IFooMetadata>>();
}
}
}
我刚刚更新了我的代码以使用当前版本的 Autofac (3.0.2),似乎任何以这种方式注册的类型都无法解析 ( ComponentNotRegisteredException
)。
我编写了上面的测试,它通过 Autofac 2.6.1.841 通过,但ComponentNotRegisteredException
在 3.0.2 中抛出了一个。
我错过了什么吗?仍然是Meta<T, TMetadata>
要走的路,还是有新的方法可以做到这一点?