4

.NET 2.0 (C#) でツールを書き始めようとしていますが、他の企業が使用できるようにツールを再ブランド化する必要があります。他社のリソースを使用して社内でツールをコンパイルするため、ソースは取得されず、生成された出力のみが取得されます。

再ブランディングでは同じデフォルト言語が使用されるため、ビルド時に resx ファイルをスクリプトと交換するなどの卑劣なことや、より卑劣な (そしてよりエラーが発生しやすい) ことを使用せずに、同じ言語セットの複数のリソースを管理するにはどうすればよいでしょうか。顧客 A には en-US、顧客 B には en-CA、顧客 C には en-GB など。

4

3 に答える 3

3

私たちのプロジェクトで、最も簡単な方法は独自の DLL にブランドを設定し、リフレクションを通じて動的にロードすることであることがわかりました。必要に応じて、ブランディングをローカライズするには 2 つの明白なアプローチがあります。

  1. ブランディング DLL をローカライズされた別の DLL に置き換える
  2. .NET でサポートされているサテライト アセンブリ技術を使用する

私の意見では、オプション 1 の方がはるかに簡単ですが、どちらも実行可能です。もちろん、ローカリゼーションには他のアプローチもあります。

于 2009-10-14T15:51:13.907 に答える
1

サテライト アセンブリの使用を試すことができます。

http://msdn.microsoft.com/en-us/library/21a15yht(VS.80).aspx

于 2009-10-14T15:34:50.710 に答える
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
  }
}

これは、オーバーライドされたテキスト項目の数が少ない場合にのみ実行可能です。

于 2009-11-19T13:40:58.167 に答える