我正在尝试能够在不同的存储库中使用多个数据库连接,并且正在关注这个答案。
我使用的是 .NET Framework 4.8,所以情况有些不同,但一切都基本相同。我遇到的问题是当我尝试在
UnityConfig.cs
中创建新字典时。
以下代码抛出错误,特别是在我尝试注册字典的行上。
var connectionDict = new Dictionary<DatabaseConnectionName, string>
{
{ DatabaseConnectionName.Connection1, ConfigurationManager.ConnectionStrings["Connection1"].ConnectionString },
{ DatabaseConnectionName.Connection2, Configurationmanager.ConnectionStrings["Connection2"].ConnectionString }
};
container.RegisterType<IDictionary<DatabaseConnectionName, string>>(new InjectionConstructor(connectionDict));
container.RegisterType<IDbConnectionFactory, DapperDbConnectionFactory>();
错误:System.ArgumentException:未找到成员匹配数据。
我认为这是一个愚蠢的错误,但我就是想不通。任何帮助将不胜感激。
有时你只需要发帖到SO来解决你自己的问题哈哈。
我变了
container.RegisterType<IDictionary<DatabaseConnectionName, string>>(new InjectionConstructor(connectionDict));
到
container.RegisterType<IDictionary<DatabaseConnectionName, string>, Dictionary<DatabaseConnectionName, string>>(new InjectionConstructor(connectionDict));
现在一切都按预期进行。