2010-07-23 68 views

回答

1

您首先需要回答这个问题:“我什么时候需要RepositoryCustomerA而不是RepositoryCustomerB?”

如果这些类中的任何一个都可以基于某个运行时状态在生产环境中实例化,那么您可能需要查看conditional object construction

如果RepositoryCustomerA应该在开发时被实例化(单元测试,说),而RepositoryCustomerB是生产模拟,那么你需要两个不同的Registry S:一个只存在于你的测试代码,一个是生产访问。有关此路线的更多信息,请阅读creating registries作为配置StructureMap的一种方法。

+0

这两个变体似乎都使用字符串。是否有可能以类型安全的方式进行此操作? – Rookian 2010-07-23 21:33:05

+0

我看了一下有条件的对象构造教程,但那里使用的方法几乎都是过时的...有没有最新的版本?我使用StructureMap 2.6.1.0 – Rookian 2010-07-23 21:41:20

+0

@Rookian:我的道歉直到现在才错过了你的意见。 [这个答案](http://stackoverflow.com/questions/2425565/structuremap-howto-conditional-construction-on-deep-object)可能会帮助你避免非类型安全的条件构造。注册管理机构支持字符串,但并不是在每种情况下都需要 - 它只取决于您在建设中需要多少细节。只需构建一个存储库或其他声音就可以以类型安全的方式完成。 – ladenedge 2010-08-06 16:07:47

相关问题