.NET 中的全局导入/使用别名
Posted
技术标签:
【中文标题】.NET 中的全局导入/使用别名【英文标题】:Global Import/using Aliasing in .NET 【发布时间】:2011-01-29 15:11:27 【问题描述】:在一个文件/类中使用导入别名,我们可以通过分配我们自己的自定义别名来引用类库命名空间,如下所示:
' VB
Imports Db = Company.Lib.Data.Objects
// C#
using Db = Company.Lib.Data.Objects;
然后我们可以使用我们分配的Db
别名来引用Company.Lib.Data.Objects
中的类。
是否可以在全局级别执行此操作,以便将别名应用于整个解决方案而不仅仅是一个文件/类?
目前,我们正在使用 Web 应用程序,所以我希望我们可以在 web.config 中添加一些内容,但我也对 Windows 窗体、控制台应用程序和/或类库是否可以实现这一点感兴趣。
【问题讨论】:
如果你想知道,有问题的类库有一些模糊的类命名,这给我们带来了一些烦恼。所以,我们本质上是想通过使用导入别名将它分成三个部分。我们希望在全球范围内进行,而不是将其添加到每个文件中。如果有更好的方法,我会全力以赴! 【参考方案1】:是的,这是 VB.Net 项目中支持的方案。这样做的方法如下
在解决方案资源管理器中右键单击项目并选择属性 转到“参考”选项卡 在“导入的命名空间”字段中输入“Db=Company.Lib.Data.Objects” 点击“添加用户导入”这将为项目中的所有文件设置别名。
但这在 C# 项目中不起作用。 C# 作为一种语言没有全局使用/导入的概念。相反,它仅在文件级别支持它们。
【讨论】:
太棒了!我们只使用 VB.NET(别笑!),这很好。但是,这适用于“网站”还是仅适用于“项目”? @Josh 我的大部分工作都涉及在 VB.Net IDE 上工作,所以在这里不要笑。这仅适用于 Web 应用程序。我不相信它适用于网站,因为它们没有全局构建的概念。 我们真的很喜欢在这里使用 VB.NET,所以继续努力吧!感谢您的回答,这正是我想要的。【参考方案2】:在您网站的 web.config 文件中 - 或者很可能是项目的 app.config 文件(未确认)
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
<namespaces>
<clear/>
<add namespace="System"/>
<add namespace="System.Collections"/>
<add namespace="System.Collections.Specialized"/>
<add namespace="System.Configuration"/>
您在本节中添加的任何内容都应该是代码隐藏页面顶部的 Imports 子句的有效替换。为我创造了奇迹,如果它对你有帮助,请告诉我
【讨论】:
但我需要别名...问题已经得到解答,但还是谢谢 @JoshStodola 顺便说一句,我做了一些测试,这种技术可以与别名一起使用——vis-à-vis:<add namespace="ColUtil = Org.Utils.CollectionUtils"/>
。
这也适用于 C# 吗?我得试试看!
@Adam,我还没试过。
这是典型的,以上是关于.NET 中的全局导入/使用别名的主要内容,如果未能解决你的问题,请参考以下文章