簡體   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