可以在app.config中为.NET命名空间设置别名吗?

Joe*_*nez 9 .net configuration alias namespaces

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

<configuration>
 <system.web>
  <pages>
   <namespaces>
    <add namespace="System.Web.Mvc"/>
   </namespaces>
  </pages>
 </system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)

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

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

using MyNamespace = System.Web.Mvc;
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*eet 12

号命名空间,需要在编译的时候.这只是编译在"晚期"完成的情况(如在ASP.NET中),这是有意义的.

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

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

认为 VB有"默认命名空间"的想法,但C#肯定没有.我个人认为这是件好事.(你可能也想看看这个问题.我不知道它是否实际上是重复的,因为你的意图目前还不清楚.)