gpt4 book ai didi

c# - 如何使用 StructureMap 通过代码定义默认构造函数?

转载 作者:可可西里 更新时间:2023-11-01 03:13:55 29 4
gpt4 key购买 nike

我不知道如何通过代码为 StructureMap(版本 2.5)中的类型定义默认构造函数(当它存在重载时)。

我想获取一个服务实例,容器必须向其中注入(inject)一个 Linq2Sql 数据上下文实例。

我在我的“ Bootstrap ”方法中写了这个:

ForRequestedType<MyDataContext>().TheDefault.Is.OfConcreteType<MyDataContext>();

当我运行我的应用程序时,出现此错误:

StructureMap Exception Code: 202
No Default Instance defined for PluginFamily MyNamespace.Data.SqlRepository.MyDataContext, MyNamespace.Data, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

如果我注释掉所有我不需要的 Linq2Sql 生成的构造函数,它工作正常。

更新:哦,我忘了说我不会使用 [StructureMap.DefaultConstructor] 属性。

最佳答案

您可以使用 ConstructedBy() 指定构造函数。请试试这个:

ForRequestedType<MyDataContext>().TheDefault.
Is.ConstructedBy(() => new MyDataContext());

这对我有用。

关于c# - 如何使用 StructureMap 通过代码定义默认构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/289512/

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