【发布时间】:2015-08-23 04:41:30
【问题描述】:
有没有办法在不使用预处理器指令的情况下获得 .csproj 默认命名空间和 Visual Studios 理解它?
例如:
CS 项目 1 的默认命名空间为 SomeCompany.ProductA
CS 项目 2 的默认命名空间为 SomeCompany.ProductB
CS 项目 1 有一个 cs 文件存在于 BaseClasses/MySpecialBase.cs 中
CS 项目 2 有一个 链接文件 到另一个项目中的同一文件。这种方式维护一个文件版本,而不使用不同的程序集。
但是,CS 项目 2 现在有一个 cs 文件引用了 CS 项目 1 中的某些内容,因此类命名空间现在不正确。
是否有关键字可以在单个cs文件中使用当前csproject文件的Default Namespace
IE:[MyDefaultNameSpace].BaseClasses
如果可能的话,我想避免使用#if #else,所以我不必添加符号。
namespace [somekeywordhere].BaseClasses
{
class MySpecialBase
{
....
}
}
【问题讨论】:
-
链接文件仍将具有相同的命名空间 - 链接文件不会改变源。但您可以改为在项目 2 中使用 T4 模板,该模板将从项目 1 中复制文件,使用 CodeDom 读取和更新命名空间,然后将项目 2 中的新文件写出作为 T4 模板的输出。 IDE 将运行模板,因此保持其最新状态应该不会太棘手。那行得通吗?需要一个例子吗?
标签: c# .net c#-4.0 visual-studio-2013 namespaces