使用来自不同程序集的内部ctor实例化一个类

时间:2015-01-04 09:31:15

标签: c# inheritance constructor

我认为无法从其他程序集访问internal ctor。今天我第一次真正需要使用这个想法,但它并没有像我预期的那样工作 - 它可以从不同的程序集中访问。

namespace A {

  public class AA {
    internal AA() { }
  }

}

namespace TestNamespace {

  public class TestClass {

    public void TestMethod() {
      var instance = new A.AA();     // <-- this compiles!
    }

  }

}

...所以我做错了,或者我不知道自己在做什么。

1 个答案:

答案 0 :(得分:2)

Assembly != Namespace

  

命名空间提供逻辑组织系统。命名空间是   用作&#34;内部&#34;程序的组织系统,以及   &#34;外部&#34;组织系统 - 一种呈现方案的方式   暴露于其他程序的元素。

虽然

  

程序集用于   物理包装和部署。一个程序集可能包含类型,   用于实现这些类型的可执行代码,以及对其他类型的引用   组件。

程序集通常是项目,C#明智。

详细了解here