gpt4 book ai didi

c#-4.0 - StructureMap 实例工厂方法

转载 作者:行者123 更新时间:2023-12-03 06:26:07 26 4
gpt4 key购买 nike

我正在尝试注册一个工厂方法来创建开放泛型类型的实例 MongoCollection<> 。然而,当我 GetInstance看起来它使用的是 MongoCollection 的构造函数而不是工厂方法。

var mongo = new MongoConfiguration("mongodb://localhost", "test");
For(typeof (MongoCollection<>)).Use(c =>
{
var requestedType = c.BuildStack.Current.RequestedType; // set breakpoint here
var type = requestedType.GetGenericArguments()[0];
return mongo.GetCollection(type);
});

那我就做

ObjectFactory.GetInstance<MongoCollection<User>>();

当我运行GetInstance时它永远不会到达工厂方法内的断点,但它会抛出 StructureMapException说“没有为 PluginFamily MongoDb.Driver.MongoServerSettings 定义默认实例”。有一个 MongoCollection 的构造函数这需要 MongoServerSettings ,但我不希望结构图使用该构造函数,我希望它使用我的工厂方法。

有什么想法为什么不使用工厂方法吗?这是一个错误吗?

最佳答案

我 fork 了存储库来浏览代码,并意识到这绝对是一个错误。我修复了错误并发送了 a pull request ,希望能尽快合并并发布。

关于c#-4.0 - StructureMap 实例工厂方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10045800/

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