gpt4 book ai didi

c# - 结构图配置更改基于 app.config 中的设置

转载 作者:太空宇宙 更新时间:2023-11-03 11:48:35 28 4
gpt4 key购买 nike

我在我的项目中使用结构图。为了注入(inject)存储库的不同实现,我想在 app.config 中有一个开关,它将存储库的所有实际实现更改为模拟存储库。

假设 IRepository 有两个实现 RealRepository 和 MockRepository

ForRequestedType() .TheDefaultIsConcreteType();

我想在 app.config/web.config 中有一个开关,比如 (Mock=1),它将所有真实的存储库实现更改为

ForRequestedType() .TheDefaultIsConcreteType();

我不想在 app.config 中编写整个插件定义,只想要一个开关,我该如何实现?

最佳答案

虽然看起来可能很奇怪,但请记住,您的 StructureMap 注册代码仍然只是 C#,并且您拥有可用语言的全部功能。这意味着您可以在需要时自由使用“if”语句。由于您的条件基于 app.config,因此您无需考虑运行时更改的值 - 您可以在启动配置时安全地使用该值。

if (appConfigIndicatesMockMode()){
ForRequestedType<IRepository>().TheDefaultIsConcreteType<MockRepository>()
} else {
ForRequestedType<IRepository>().TheDefaultIsConcreteType<RealRepository>()
}

其中 appConfigIndicatesMockMode() 是一种以通常方式读取您的 app.config 设置并返回 true 或 false 的方法。

关于c# - 结构图配置更改基于 app.config 中的设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2710602/

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