忽略C#类定义中的无效/不相关字段属性

时间:2011-09-20 09:21:22

标签: c# reflection attributes c-preprocessor filehelpers

我已经定义了一个类文件,我将它用于两个目的(试图遵循DRY原则)。某些字段有属性,它们在运行时由程序A使用。程序B不知道这些属性,因此当我在项目中包含这些类时它拒绝编译。我可以看到两种解决这个问题的方法,但不喜欢其中任何一个:

  1. 添加对程序A的DLL的引用 - 我不喜欢为避免编译错误而添加此依赖项的想法

  2. 添加预处理程序指令并使用#if,#else语句将每个指令包装起来。有很多,所以我也不喜欢这种方法。

  3. 任何人都可以想到的任何更优雅的解决方案,让我的项目忽略这些属性或以其他方式解决问题?

    PS。程序A是一个在运行时使用类定义的程序,带有filehelpers(http://filehelpers.sourceforge.net/),这就是为什么这个安排看起来有点不正统。一旦导入数据,程序B将(如果我没有遇到showstoppers!)首先使用EF代码对相同的数据进行建模。

1 个答案:

答案 0 :(得分:1)

您还有另一种选择:将属性类(以及两个程序共享的任何其他类)放在一个单独的库中,并从程序A和程序B中引用它。