c# - 类库命名空间层次结构不起作用

标签 c# dll namespaces class-library

我正在尝试在我的类库中实现 C# 中使用的命名空间层次结构。这是我想要做的:

namespace Parent
{
    namespace Child
    {
        Class ChildClass {  }
    }

    Class ParentClass {  }
}

编译类库后没有按预期工作。这是我预期的工作原理。

访问 ChildClass一到using Parent.Child .但是可以访问ParentClass刚刚 using Parent .

我可以在不编译类库的情况下执行此操作,而是将 cs 文件添加到项目中。但是当我编译为 DLL 并将其添加为项目中的引用时,我无法访问子命名空间。

更新:我为每个类(class)准备了不同的文件。当我将所有命名空间和类写入一个文件时,它似乎可以工作。但为什么?

有没有办法在 C# 中实现这一点?

最佳答案

我想你的课不见了 public ;以下代码对我有用。

namespace Parent
{
    namespace Child
    {
        public class ChildClass { }
    }
    public class ParentClass
    {
    }
}

我可以创造;
Parent.ParentClass p;
Parent.Child.ChildClass c;

这是您预期的工作原理。

编辑:为每个类方法单独的 cs 文件;

ParentClass.cs
namespace Parent
{
    public class ParentClass{ }
}

ChildClass.cs
namespace Parent
{
    namespace Child
    {
        public class ChildClass { }
    }
}

这似乎对我有用。

关于c# - 类库命名空间层次结构不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34085510/

相关文章:

c++ - LINK2019 : unresolved external symbol for a function returning shared_ptr<int>

c# - 在c#中自定义ToolStripMenuItems

c# - 无法加载文件或程序集 'System.Net.Http, Version=2.2.29.0'

c - 如何修复 PrintUIEntry 返回错误代码 2

c++ - 如何准备在单个 Windows 环境中生成 .dll 和 unix .so 的构建作业?

c# - 在单个项目中使用不同的命名空间

c# - 如何以编程方式连接到 VPN?

c# - 如何访问类中 View 模型中声明的属性?

PHP 命名空间 : If I'm not going to need to redeclare already taken functions do I need them?

asp.net-mvc - 域模型命名空间命名约定