gpt4 book ai didi

c# - 长度为 2 的多个构造函数。无法与 Unity 消除歧义

转载 作者:IT老高 更新时间:2023-10-28 13:32:34 26 4
gpt4 key购买 nike

我想将 DI 与 MongoDB 的存储库类和接口(interface)一起使用,但它不起作用。我有这个错误:

The type MongoRepository`1 has multiple constructors of length 2. Unable to disambiguate.

类构造函数:

    public MongoRepository(string connectionString, string collectionName)
{
this.collection = Util<TKey>.GetCollectionFromConnectionString<T>(connectionString, collectionName);
}


public MongoRepository(MongoUrl url, string collectionName)
{
this.collection = Util<TKey>.GetCollectionFromUrl<T>(url, collectionName);
}

统一配置:

container.RegisterType(typeof(MongoRepository.IRepository<>), typeof(MongoRepository.MongoRepository<>));

如何在 Unity 中配置 DI?谢谢!!

最佳答案

请注意,您还可以告诉 Unity 它应该使用哪个构造函数:

//Use the MongoRepository(string, string) constructor:
container.RegisterType(
typeof(IRepository<>),
typeof(MyMongoRepository<>),
new InjectionConstructor(typeof(string), typeof(string)));

关于c# - 长度为 2 的多个构造函数。无法与 Unity 消除歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25565226/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com