用 autofac 注册抽象类
Posted
技术标签:
【中文标题】用 autofac 注册抽象类【英文标题】:Register abstract class with autofac 【发布时间】:2014-01-17 21:20:45 【问题描述】:我只是在添加了 autofac 程序集的快速制作的控制台应用程序中运行此代码:
builder.RegisterType<DbConnection>().As<IDbConnection>().WithParameter("connectionString", connectionString);
虽然 DbConnection 是抽象类型,但也不例外。
autofac 是否真的创建了 DbConnection 的具体实例,尽管它是抽象的?
怎么可能不用:
builder.RegisterType().As().WithParameter("connectionString", connectionString);
我是否必须从 DbConnection 继承并注入然后从 DbConnection 继承的 mysqlConnection?
【问题讨论】:
【参考方案1】:您只会在分辨率上得到例外。您确实需要注册具体类型,因为您无法实例化抽象类型。因此,正如您所说,您需要一个具有从 DbConnection 派生的公共构造函数的非抽象类型,并将其注册为 IDbConnection。
【讨论】:
以上是关于用 autofac 注册抽象类的主要内容,如果未能解决你的问题,请参考以下文章
[Asp.Net Core]Autofac单抽象多实例属性注入
[Asp.Net Core]Autofac单抽象多实例属性注入
[Asp.Net Core]Autofac单抽象多实现构造函数注入