我有一種情況,即我想要在多個應用程序中使用的功能。特別是,我有一個Repository
採用C#類庫的形式,其中包含EF.edmx,存儲庫和UnitOfWork等通用的應用程序。鏈接文件和添加另一個項目作爲參考之間的區別?
我很沮喪,我不能更清楚地看到圖片,因爲我應該明確瞭解差異;我很重視。不過,我認爲我無法看清每種選擇的影響和整體差異。
我已閱讀此鏈接:How do you share code between projects/solutions in Visual Studio?它提供了一些很好的建議,但這兩個建議似乎持有水。我想更好地瞭解每個人的下游影響,並瞭解哪些是我需要的正確選擇。
我相信,隨着聯文件我會創造在申請-2的另一新Repository
項目,但使用鏈接的文件進行什麼包括新層。
我相信,隨着加入的應用-1 Repository
作爲參考到Application-2的工作,但我不知道的更改代碼的影響將是什麼。
我基本上需要知道哪種方法會產生正確的結果,我需要在1..n應用程序之間共享存儲庫層?
將相同的類文件編譯爲多個程序集不會產生衝突(或者如果您願意,不會產生無法解決的衝突)。這些類將是不同的類型。使用VS和csc很容易處理它們 - 只需使用[extern別名](http://msdn.microsoft.com/en-us/library/ms173212(v = vs80).aspx)。真正的問題是它們會是不同的類型,如果你想在它們之間進行轉換,你必須編寫類型轉換方法。如果他們暴露給COM,那麼COM就無法區分它們。 –
謝謝,不知道這是可能的。我編輯了我的答案。 – Alexander
@Alexander - 如何選擇#2的分支,即:「將通用代碼提取到類庫中,並將此新的重構類庫添加爲*現有項目*到項目#2」。這與引用.dll相反。我喜歡將該引用添加到現有項目的想法,因爲我可以在兩個項目中遍歷代碼。 .dll不允許我這樣做(沒有一些工具的幫助來反編譯和插入)。 – atconway