未找到成员匹配数据 - 在Unity容器中注册字典

问题描述 投票:0回答:1

我正在尝试能够在不同的存储库中使用多个数据库连接,并且正在关注这个答案

我使用的是 .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:未找到成员匹配数据。

我认为这是一个愚蠢的错误,但我就是想不通。任何帮助将不胜感激。

c# .net unity-container
1个回答
0
投票

有时你只需要发帖到SO来解决你自己的问题哈哈。

我变了

container.RegisterType<IDictionary<DatabaseConnectionName, string>>(new InjectionConstructor(connectionDict));

container.RegisterType<IDictionary<DatabaseConnectionName, string>, Dictionary<DatabaseConnectionName, string>>(new InjectionConstructor(connectionDict));

现在一切都按预期进行。

© www.soinside.com 2019 - 2024. All rights reserved.