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