1

我只是在添加了 autofac 程序集的快速制作的控制台应用程序中运行此代码:

builder.RegisterType<DbConnection>().As<IDbConnection>().WithParameter("connectionString", connectionString);

尽管 DbConnection 是抽象类型,但也不例外。

autofac 是否真的创建了 DbConnection 的具体实例,尽管它是抽象的?

怎么可能不使用:

builder.RegisterType().As().WithParameter("connectionString", connectionString);

我是否必须从 DbConnection 继承并注入然后从 DbConnection 继承的 MySqlConnection?

4

1 回答 1

1

你只会得到分辨率的例外。您确实需要注册具体类型,因为您无法实例化抽象类型。因此,正如您所说,您需要一个具有从 DbConnection 派生的公共构造函数的非抽象类型,并将其注册为 IDbConnection。

于 2013-12-30T23:40:21.240 回答