我只是在快速制作的控制台应用程序中运行此代码,并添加了autofac程序集:
builder.RegisterType<DbConnection>().As<IDbConnection>().WithParameter("connectionString", connectionString);
虽然DbConnection是抽象类型,但没有例外。
autofac是否真的创建了DbConnection的具体实例,尽管它是抽象的?
怎么可能不使用:
builder.RegisterType()。As()。WithParameter(“connectionString”,connectionString);
我是否必须从DbConnection继承并注入然后继承自DbConnection的MySqlConnection?
答案 0 :(得分:1)
您只能获得解决方案的例外情况。您需要注册具体类型,因为您无法实例化抽象类型。因此,正如您所说,您需要一个非抽象类型,其中包含从DbConnection派生的公共构造函数,并将其注册为IDbConnection。