[英]What's the best way to provide an interface definition to others in C#?
這讓我覺得很可能有一個公認的最佳實踐答案,但我似乎無法在任何地方找到答案。
我有一個應用程序,它將加載和使用實現特定接口的類。 實現類將由其他人編寫,我想向他們發送成功實現接口所需的最低限度。
到目前為止,我想出的最好的方法如下:
包含以下內容的應用程序解決方案: 僅包含接口定義並編譯為 dll 的項目。 使用該接口並引用 dll 的應用程序項目。
構建到 dll 並引用接口 dll 的示例實現的單獨解決方案。
這是最好的方法嗎? 即將接口的編譯版本分發給需要實現接口的任何人。
我嘗試在示例實現中僅使用接口源文件的副本,但我的應用程序無法將 class 識別為實現接口。 這是意料之中的還是我的 class 加載代碼有問題(當示例引用預編譯的 dll 時它確實有效)?
您應該將您的接口放在一個程序集中,然后分發您的程序集(或您的整個項目,如果需要),以便其他想要實現該接口的人只需要引用您的程序集,這樣他們就可以訪問相同的接口(這不是如果您只是發送接口(.cs)文件,因為您的接口將嵌入另一個程序集中,因此肯定會有另一個命名空間或程序集名稱,這就是為什么您的實現 class 未被識別為繼承您的接口的原因基本上它不是即使方法和屬性相同,接口也相同;))
如果您不希望人們更改您的代碼而只使用界面,我認為您的方法首先是最好的
否則只共享包含接口的整個項目
這就是我使用過的方法,並且在其他項目中也看到過——給共享程序集一個通用名稱,例如 MyApp.Interfaces,以防您最終得到多個共享接口。
另一種方法是使用托管可擴展性框架: http://msdn.microsoft.com/en-us/library/dd460648.aspx - 但這對於小型項目來說可能是多余的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.