2011-09-20 51 views
0

我定義了一個類文件,並將其用於兩個目的(試圖遵守DRY原則)。在某些字段上有屬性,程序A在運行時使用這些屬性。程序B不知道這些,所以當我將這些類包含在項目中時,它拒絕編譯。我可以看到周圍的工作這兩種方法,但不喜歡他們中的任何一個:忽略C#類定義中無效/不相關的字段屬性

  1. 添加的引用程序的DLL - 我不喜歡加入這種依賴的想法只是爲了避免編譯錯誤

  2. 添加預處理器指令並用#if,#else語句包裝每個指令。有很多,所以我也不喜歡這種方法。

任何人都可以想到的更優雅的解決方案,使我的項目忽略這些屬性或以其他方式解決問題?

PS。程序A是一個在運行時使用類定義的程序,帶有文件幫助程序(http://filehelpers.sourceforge.net/),這就是爲什麼這個安排看起來有點不正規的原因。一旦導入了數據,程序B將(如果我沒有遇到showstoppers!)首先使用EF代碼來針對相同的數據建模。

回答

1

你有另一種選擇:把屬性類(由兩個程序共享任何其他類)在一個單獨的圖書館和來自程序A和B.程序引用它

+0

感謝您的建議。對於解決方法來說,這還是相當不錯的,我認爲#if中的屬性的包裝可能是目前最輕微的。隊友的歡呼聲 – Glinkot