如何识别命名空间?

时间:2014-04-30 01:58:35

标签: c# namespaces inversion-of-control

我的团队有许多IOC惯例,看起来像......

if (type.Namespace == "My.Fun.Namespace")
{
    // do stuff
}

当然,保持这种事情一段时间后变得残酷,我们宁愿不这样做。我能想到的唯一选择是将这些存储在一个地方,作为字符串常量或类似的东西,但这并不是更好......我们一直在考虑创建基本上用作名称空间标识符的类。为了得到几乎一种类型的锚类型,比如说...

if (type.Namespace == typeof(My.Fun.Namespace.MarkerClass).Namespace)
{
    // do stuff
}

但这感觉很奇怪。那么还有另一种方法可以解决我们不了解的问题吗?如果没有,有没有人对整个标记类概念有任何好运?

对评论的回应:

我没有设计这个,我不应该改变它;我只是希望有人知道获得命名空间的更好方法。我上面概述的实际上是我们正在使用的StructureMap约定中的一段代码。该约定扫描程序集以获取给定接口的实现,并且通常优先考虑更专业的实现 - 因此可以在" X.Y.Z"命名空间优先于" X.Y"。

中的基础实现

0 个答案:

没有答案