繁体   English   中英

在 netcore 中使用 autofac 的 registerType 异常

[英]registerType exception using autofac in netcore

这不是问题,而是问题。 我有以下示例代码:

class CommonArgs{
}

class TestArgs : CommonArgs{
}

abstract class AbstractHandler where T: CommonArgs, new (){
}

class TestHandler: AbstractHandler{
}

我使用 autofac 来注册类型:

builder.RegisterType (typeof (TestHandler)). Named ("testHandler", typeof (AbstractHandler<>)). InstancePerLifetimeScope ();

当我build.Build () ,我得到一个异常:

System.ArgumentException:“类型‘TestHandler’不可分配给服务‘testHandler (AbstractHandler`1)’。”

什么是正确的注册类型? (使用dotnet core Autofac 4.8.1)

你快到了,只需使用RegisterType重载和带有一些字符串键和typeof(AbstractHandler<CommonArgs>))Named

这是我的 github 的链接,其中包含一个小单元测试来发布您的问题。

代码:

ContainerBuilder builder = new ContainerBuilder();            
builder.RegisterType<TestHandler>().Named("myTestHandler", typeof(AbstractHandler<CommonArgs>));

IContainer container = builder.Build();

var testHandler = container.ResolveNamed("myTestHandler", typeof(AbstractHandler<CommonArgs>));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM