我定义了一个类文件,我将它用于两个目的(试图遵循DRY原则)。在一些字段上有属性,这些属性是由程序a在运行时使用的。程序B不知道这些,所以当我在项目中包含这些类时,它拒绝编译。我可以看到两种方法来解决这个问题,但我不喜欢其中任何一个:
-
为程序a的DLL添加一个引用-我不喜欢仅仅为了避免编译错误而添加这个依赖项的想法
-
添加一个预处理器指令,并用#if, #else语句包装每个指令。有很多,所以我也不太喜欢这个方法。
任何人都能想到的更优雅的解决方案,使我的项目忽略这些属性或以其他方式解决问题?
p。程序A是一个在运行时使用类定义的程序,带有文件助手(http://filehelpers.sourceforge.net/),这就是为什么这种安排看起来有点不正统。一旦导入了数据,程序B将(如果我没有遇到障碍的话)首先使用EF代码对相同的数据建模。
您还有另一种选择:将属性类(以及两个程序共享的任何其他类)放在单独的库中,并从程序a和程序b中引用它。