2017-04-11 38 views
1

C# 你好用,DLL的多個應用程序,但不同的方法

我建立一個DLL在我的所有CustomControls位於(按鈕,自定義消息框等)。我想在多個應用程序中使用這些控件。 應用程序是多語言的。 問題是每個應用程序都有不同的翻譯文本的方法。例如,我有一個自定義按鈕,該按鈕有一個名爲KeywordText的屬性:這意味着我給他一個關鍵字例如「First.Run」,並且該按鈕在「這是您第一次運行此應用程序」時轉換它。 在一個軟件中,通過調用Config.Translation["First.Run"];來翻譯文本。在其他應用程序中處理方式不同。

我的問題是,我可以在我的dll中創建一個名爲'TranslateText(string text)'的方法。然後在每個程序中定義它,而不是在dll中。例如在1.應用程序中,我將其定義爲 public string TranslateText(string text){ return Config.Translation[text]; }

而在我的CustomButton中,我將設置如下文本:this.Text=TranslateText(keyword);。 按鈕應該然後調用方法TranslateText()從按鈕中使用的應用程序。

我希望你明白我的意思:)

+0

是的,這是可能的! –

+0

以及如何?我用接口和抽象類試過了,但都沒有工作,你能給我一個鏈接或解釋它嗎? –

回答

0

最簡單的改變你所能做的就是用虛擬關鍵字

改變你的方法
public virtual string TranslateText(string text){ 
    return Config.Translation[text]; 
} 

然後在翻譯邏輯不同的應用程序中,從你的dll的控件派生一個控件,並用不同的邏輯覆蓋該方法。

或者在另一種方法中,您可以使用委託將函數作爲參數從調用程序集傳遞給控件dll。如果你不知道什麼是函數回調,請參閱What is a callback?

+0

好的,謝謝你的回答,我會看看:) –

+0

祝你好運!希望解決這個問題。 –

+0

@FabianBurgmann,你能解決你的問題嗎? –

相關問題