【问题标题】:Possible to alias .NET namespaces in app.config?可以在 app.config 中为 .NET 命名空间起别名吗?
【发布时间】:2010-11-12 15:33:52
【问题描述】:

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 将其部署到网络上。唯一的问题是所有 Silversprite 版本的 API 都位于不同的命名空间中,因此要使用它,您需要在 using 语句周围使用 ifdef。如果您可以简单地为 silversprite 命名空间设置别名,这样您的代码就不必在平台之间进行更改,那就太棒了。

【问题讨论】:

    标签: .net configuration namespaces alias


    【解决方案1】:

    没有。 编译时需要命名空间。只有在编译“延迟”完成的场景(如在 ASP.NET 中)才有意义。

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

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

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

    【讨论】:

    • 很公平......我只是希望我可能不熟悉该功能。但遗憾的是,你已经证实了我认为是真的:-) 另外,我在上面澄清了我的意图,以防万一有人好奇。谢谢乔恩!
    猜你喜欢
    • 2012-02-23
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    • 2014-02-01
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多