.net - 可以在 app.config 中为 .NET 命名空间添加别名吗?

标签 .net configuration namespaces alias

ASP.NET 有一项功能,允许您在 web.config 中声明隐式使用的命名空间。

<configuration>
 <system.web>
  <pages>
   <namespaces>
    <add namespace="System.Web.Mvc"/>
   </namespaces>
  </pages>
 </system.web>
</configuration>

我很想知道其他 .net 环境(如 winforms、控制台应用程序,特别是 silverlight 应用程序)的配置是否具有此功能。 如果是这样,那么接下来的问题是我们是否能够在所述配置中为命名空间添加别名。

这段代码的模拟,但是通过配置:

using MyNamespace = System.Web.Mvc;

编辑:我的意图来自于查看诸如 silversprite 之类的项目其目标是为 silverlight 的 XNA 提供相同的 API。这允许您编写一次 XNA 游戏,然后使用 silverlight 将其部署到 Web 上。唯一的问题是所有 silversprite 版本的 API 都位于不同的命名空间中,因此要使用它,您需要在 using 语句周围使用 ifdef。如果可以简单地为 silversprite 命名空间添加别名,这样您的代码就不必在平台之间进行更改,那就太棒了。

最佳答案

没有。 编译时需要命名空间。只有在编译“较晚”完成的情况下(如在 ASP.NET 中),这才有意义。

如果代码已经编译,那么在执行时添加命名空间意味着什么?

您真的在选择避免在每个文件顶部编写一堆 using 指令之后吗?如果是这样,并且如果 C# 支持它,那将在项目属性中(与编译有关,而不是执行)。但是,C# 不支持这一点 - 唯一导入的命名空间是当前文件中 using 指令指定的命名空间。

认为 VB 有“默认命名空间”的想法,但 C# 绝对没有。我个人认为这是一件好事。 (您可能还想查看 this question 。我不知道它是否实际上是重复的,因为目前您的意图尚不清楚。)

关于.net - 可以在 app.config 中为 .NET 命名空间添加别名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1159142/

相关文章:

c# - 你能在 C# 中做 $array ["string"]

.net - MVC3 部分 View 与常规 View

.net - 文本替换功能

c# - VS 2010 SP1 - 此安装不支持项目类型

c# - ASP.NET:通过命名空间一次注册多个控件?

c# - 如何使用 LINQ 选择具有最小或最大属性值的对象

configuration - 不同Logback附加程序的特定于软件包的日志记录级别

.NET IoC - .NET Unity 的等效代码

c# - 大中型项目的结构

使用代理时,jQuery 不显示事件命名空间