我想让StructureMap为某个实例返回一个名为“None”的Special Case。结构图可以返回一个特例吗?
说我有这个类MyUser
它的作用域为HttpContext。我想要有一个嵌套的dreived类None
(即MyUser.None
),当没有HttpContext
(例如,像bootstrapping,Application_Start()
等)时,它将被重新转换为MyUser
类型。
这意味着,某些呼叫可以检查对于特殊情况类型,而不是空(更易读)像
if(value is MyUser.None)
// do special case things
else
// do normal case things
什么SM的配置,我需要做到这一点?我已经尝试了ConditionallyUse
方法,但没有取得太大的成功。我一直在从SM内部抛出NullReferenceExceptionS
。
它看起来像你用我的答案,把它写成你的,并接受它。你不应该接受我的,只是添加一个评论,你错过了一些NullReferenceExceptions或什么? –
不尊重约什。我不是故意让它看起来像那样。 事实是,我已经在使用'ConditionallyUse'很像你的答案建议(即使我的问题只提到_that_我用它,而不是如何)。这真的是解释我如何解决潜在问题(在代码片断之后),我认为这可能对其他人更有价值。这就是为什么我写了一个新的答案。我确实在思考如何在你的答案中提供参考。我非常感谢你的帮助。 –
没有采取,只是想明白。很高兴你解决了你的问题。 –