簡體   English   中英

在 C# 中向其他人提供接口定義的最佳方式是什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM