.net核心

时间:2017-03-21 12:47:32

标签: asp.net-core .net-core

在Visual Studio 2017中我有一个aspnet核心项目的解决方案和大约10个相互引用的网络核心库。

其中一个库是xUnit测试项目。它引用了另一个应该用作测试目标的项目。

例如我有:

Project: MyProject.Domain
Test Project: MyProject.Domain.Tests

MyProject.Domain.Tests引用了MyProject.Domain。

在这些项目中,我有类名为项目名称的类。 所以当我可以使用MyProject.Domain中的公共类而不使用MyProject.Domain时,会发生奇怪的事情。

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您就会想知道为什么命名空间MyProject.Domain.Tests中的类型可以访问命名空间MyProject.Domain中的类型而没有任何using。原因是规范说明了这一点。来自Namespace and type names(通过删除不相关的部分进行编辑):

  

namespace_or_type_name 的含义确定如下:

     
      
  • 如果 namespace_or_type_name 的格式为I:      
        
    • 对于每个名称空间N,从 namespace_or_type_name 所在的名称空间开始   发生,继续每个封闭的命名空间(如果有的话),然后结束   使用全局命名空间,将评估以下步骤,直到a   实体位于:      
          
      • 如果N包含名称为I的可访问类型,则:      
            
        • namespace_or_type_name 指的是类型。
        •   
      •   
    •   
  •