2012-03-30 24 views
0

對不起,沒有更好的標題,想不到更好的...庫可能需要引用使用它的應用程序? C#

無論如何,我已經寫了一個基本上查看系統庫。該庫由系統的編輯器應用程序使用。不幸的是,我突然需要圖書館在其中一個類中有一個變量來訪問編輯應用程序。當然,這是不可能的,沒有參考。事情是,我覺得在數百次使用這個庫的時候沒有必要引用編輯器應用程序,只有一個應用程序使用它(編輯器),這意味着庫需要編輯器引用它。

我真的很希望這是有道理的。

在大多數情況下:應用程序使用圖書館 在編輯器的情況:編輯器使用圖書館使用編輯器

我基本上要圍繞其引用從庫中編輯的方式。我的所有需求都是爲了存儲在庫中的類型變量(或者可以訪問的循環空間)MyClass(默認值爲null)。 MyClass是編輯器的一部分,但不是庫,我不想引用編輯器。

感謝您的幫助!

+3

這不是必需的。請解釋爲什麼圖書館需要訪問'MyClass',所以我們可以找到一個更好的方法來做到這一點。這很可能是你的圖書館提供的一個事件,編輯可以訂閱它自己,並執行你目前想在圖書館裏做的任何事情。 – 2012-03-30 13:53:15

+0

當我開發一個用於WPF和WinForm應用程序的庫時,我遇到了同樣的問題。如果你正在使用編輯功能,不能不惜一切代價避免它,那麼你可能不得不引用它。但是你應該儘可能地採用鬆散耦合的方法來開發。請張貼一些代碼,以查看 – Habib 2012-03-30 13:56:59

+0

感謝Daniel,基本上我希望圖書館檢查一些東西,但是將所有變量從編輯器傳遞到圖書館應該是一項巨大的工作:/ usr的答案看起來像它應該工作不過,現在試試:) – Randomman159 2012-03-30 14:27:53

回答

5

創建一個你「編輯器」實現的接口。該庫不需要知道具體的實現,它可以與接口一起工作。

+0

並將接口放入其自己的程序集中,以便庫引用接口的程序集,而不是編輯器程序集。編輯器程序集還需要引用接口程序集。 – Polyfun 2012-03-30 14:23:10

+0

謝謝,現在試一試:) – Randomman159 2012-03-30 14:28:02

相關問題