Visual Studio-Resxファイルのデフォルト「内部」から「パブリック」


165

VSでリソースファイルを編集するたびに、対応するコードが再生成され、クラスアクセス修飾子が内部に設定されます。
resxを編集するたびにCtrl-F-> ReplaceAllを実行するのは面倒です。これをパブリックにデフォルト設定できるプロパティ/設定はありますか?

internal class MyResource {

     internal static global::System.Resources.ResourceManager ResourceManager {...}

}

私はそれらすべてが常に存在internalする必要がありますpublic


@jvanrhyn:ソリューションの別のプロジェクトからリソースマネージャーにアクセスする必要があるため。
Robin Maben 2010年

回答:


334

の代わりに、ResXFileCodeGeneratorを使用しPublicResXFileCodeGeneratorます。

これを行うには、これを、パブリックアクセスするResxファイルのプロパティウィンドウでカスタムツールプロパティとして設定します。

編集:Visual Studioでresxファイルを開くときに、アクセス修飾子をパブリックに設定することもできます。アクセス修飾子のドロップダウンボックスは、フォームの上部にあります。


13
(良い回答ですが、いくつかのメモだけです。それだけではありGlobalResourceProxyGeneratorませんResXFileCodeGenerator。「アクセスモドフィエ」ドロップダウンがしばしば無効になっていることにも注意してください)
Marc Gravell

@アントン:ありがとう、私の場合は機能します。また、ドロップダウンからアクセス修飾子を変更すると、対応するツールも変更されることに気づきました。
Robin Maben 2010年

1
@conqenator:同じ結果に到達する別の方法としてAccess Modifierドロップダウンを使用することを提案したのはそのためです:)
Anton

2
ところで、[アクセス修飾子]ドロップダウンが無効になっている場合は、カスタムツールプロパティをResXFileCodeGeneratorに変更してみてください(値がalredyでない場合)。VS 2010でMVCプロジェクトの私のために少なくともその作品
マヌエル・ナバロ

1
Visual Studio 2017を使用している私にとってPublicResXFileCodeGeneratorは、コンストラクターではなく、Resourcesクラスをパブリックにすることだけを選択しています。
Laurent Michel

13
  1. リソースファイルresource.resx)を右クリック=> プロパティ

  2. カスタムツール =>変更PublicResXFileCodeGenerator


-7

おそらく最も簡単な方法は、Public ctorを使用して派生クラスを作成することですか?

生成されたクラス:

 [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
    internal Strings() {
    }

派生クラス:

public class PublicStrings : Strings
{
    /// <summary>
    /// Public localization Strings.
    /// </summary>
    public PublicStrings()
    {

    }
}

13
これは不可能です。エラーCS0060一貫性のないアクセシビリティが発生します:基本クラス 'Strings'はクラス 'PublicStrings'よりもアクセスしにくい
David Gardiner
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.