如何为被其他项目使用的命名空间添加一个更短的别名?

3

下午好!

我在Visual Studio解决方案中有两个C#项目,其命名空间结构如下(反映了目录布局):

MySolution
|-- MyLibrary
|   |-- App_Code
|   |   |-- Entities
|   |   |   `-- ...
|   |   `-- ...
|   `-- MainClass.cs
`-- MyApplication
    |-- App_Code
    |   `-- ...
    `-- Main.cs

MyApplication项目中,我想使用MyLibrary项目中Entities命名空间中的一些类,而不必每次都指定其完全限定名称:
...
// using MyLibrary.App_Code.Entities; // too long and ugly
using MyLibrary.Entities; // much better

namespace MyApplication
{
    class Main
    {
        ...
    }
}

如何在 MyLibrary 中定义 MyLibrary.Entities 作为 MyLibrary.App_Code.Entities 的别名(从而避免每次使用组件时手动进行操作)?


2
我相信你无法这样做。 我怀疑你唯一能做的就是实际更改命名空间。 象下面某些答案中的别名并不能实现你想要的效果。 - C. Knight
1
可能会有所帮助。看起来答案是很遗憾,你不能在整个项目中为命名空间设置全局别名。 - C. Knight
1
@C.Knight - 而且这甚至是在消费项目中而不是被消费的项目中,这似乎是这个问题所询问的。 - Damien_The_Unbeliever
1
这更接近https://dev59.com/xm865IYBdhLWcg3wceRU,我认为。 - Damien_The_Unbeliever
是的,这是一个更好的链接,因为别名只是另一个名称。不过仍然会得到“无法”的答案。 - C. Knight
1个回答

2

选项1:将实体类的命名空间(MyLibrary.App_Code.Entities)更改为MyLibrary.Entities。

namespace MyLibrary.Entities
{
    public class Foo
    {
        ......
    }
}

选项2:使用指令

using Entities = MyLibrary.App_Code.Entities;

namespace MyApplication
{
    class Main
    {
        var foo = new Entities.Foo();
    }
}

如果您有任何问题,请告诉我。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接