任务:在不同的项目中重用C#代码但没有项目引用(不需要额外的dll /引用只是因为一个小的实用程序类).有4个项目,其中一个包含实用程序类,目前由其他3个项目链接源代码.问题:一旦其中一个项目开始引用其他项目(对于其他一些需求),编译器开始抱怨(显然)在这些项目中存在相同的类(具有相同的命名空间).
除了将类移动到单独的项目或为每个项目制作4个类的副本并单独维护它们之外,还有其他解决方案吗?
我想知道有没有办法获取链接文件,以便文件中的类获得项目特定的唯一命名空间...
我想知道有没有办法获取链接文件,以便文件中的类获得项目特定的唯一命名空间...
那你可以使用预处理器指令:
#if PROJECT_FOO
namespace Foo
#elif PROJECT_BAR
namespace Bar
#elif PROJECT_BAZ
namespace Baz
#endif
Run Code Online (Sandbox Code Playgroud)
...然后将文件链接到每个项目中,在项目属性中定义适当的符号.
但我会彻底推荐反对它.这太可怕了,而且当然不是C#的设计方式.
只需将其分解为一个单独的项目 - 无论如何,您必然会发现需要越来越多的代码.