重用类/没有引用

时间:2014-03-07 18:30:40

标签: c# code-reuse

任务:在不同的项目中重用C#代码但没有项目引用(不需要额外的dll /引用只是因为一个小的实用程序类)。 有4个项目,其中一个包含实用程序类,目前由其他3个项目链接源代码。 问题:一旦其中一个项目开始引用其他项目(针对其他一些需求),编译器开始抱怨(显然)在这些项目中存在相同的类(具有相同的命名空间)。

除了将课程移到单独的项目或为每个项目制作4个课程副本并单独维护它们之外,还有其他解决方案吗?

我想知道有没有办法获取链接文件,以便文件中的类获得项目特定的唯一命名空间...

2 个答案:

答案 0 :(得分:6)

  

我想知道有没有办法获取链接文件,以便文件中的类获得项目特定的唯一命名空间...

可以使用预处理器指令:

#if PROJECT_FOO
namespace Foo
#elif PROJECT_BAR
namespace Bar
#elif PROJECT_BAZ
namespace Baz
#endif

...然后将文件链接到每个项目中,在项目属性中定义适当的符号。

但我会彻底推荐反对它。这太可怕了,而且当然不是C#的设计方式。

将其分解为一个单独的项目 - 无论如何,您必然会发现需要越来越多的代码。

答案 1 :(得分:-1)

问题:

“除了将课程移到单独的项目或为每个项目制作4个课程副本并单独维护它们之外,还有其他解决方案吗?”

简短的回答是:不,没有。或者至少,没有优雅的方式。

正确的方法确实是使其成为引用项目的一部分。但是你不必创建一个包含JUST该实用程序类的项目!相反,将它作为一个项目,包含尽可能少的依赖项的多个简单实用程序,并在您的解决方案中共享它。这种方式更简单,更清洁。