2009-10-14 36 views
4

我即將開始在.NET 2.0(C#)中編寫工具,並且該工具需要重新品牌化以供其他公司使用。我們將在內部編譯該工具以及其他公司的資源,以便它們不會獲得源代碼,只是生成的輸出。在.NET 2.0中重塑應用程序資源

由於重新品牌化將使用相同的默認語言,您如何管理同一語言集的多個資源,而不需要做一些低級的事情,比如在構建時用腳本交換resx文件,或者更糟糕的東西(以及更多的錯誤像使用en-US代表客戶A,en-CA代表客戶B,en-GB代表客戶C,等等。

回答

1

我決定去的路線是有一個TextOverrides類。此類公開了一堆諸如屬性:

public static string ProductName 
{ 
    get 
    { 
    #if <companyNameA> 
     return Properties.Resources.ProductName_CompanyNameA; 
    #elif <companyNameB> 
     return Properties.Resources.ProductName_CompanyNameB; 
    #else 
     return Properties.Resources.ProductName; 
    #endif 
    } 
} 

這是唯一可行的,如果被覆蓋的文本的項目數量仍然很小。

3

我們在我們的項目中,最簡單的路線是在其自己的DLL,然後動態加載通過反射的品牌找到。如果需要的話,有兩個明顯的方法來定位任何品牌:

  1. 與其他已本地化
  2. 使用由.NET支持的衛星組裝技術

選項1是更換品牌DLL在我看來,這更容易,但都是可行的。當然,還有其他的本地化方法。

相關問題