13

次を使用して、.net Web サイトに resx ファイルをロードしようとしています。

ResourceManager rm = new ResourceManager( "Project.Resource", Assembly.GetExecutingAssembly() );

Resource.resx ファイルはフォルダー App_LocalResources にあり、ビルド時にアセンブリに組み込まれるように設定されています。

次を使用してresxファイルにアクセスしようとすると:

rm.GetString( "key" );またrm.GetString( "key", culture );

エラー メッセージが表示されます。

指定されたカルチャまたはニュートラル カルチャに適したリソースが見つかりませんでした。コンパイル時に "Project.Resource.resources" がアセンブリ "Project" に正しく埋め込まれているかリンクされていること、または必要なすべてのサテライト アセンブリが読み込み可能で完全に署名されていることを確認してください。

.resources に注目してください...ここで何が起こっているかについてのアイデアはありますか?

4

5 に答える 5

20

.resxをResourceManagerにロードするには、名前空間を指定する必要があります

var rm = new ResourceManager("Namespace.ResxName", Assembly.GetAssembly());

または、Managed ResourceEditor内のAccessModifierをInternalまたはPublicに設定すると、ResourceManagerを無料で入手できます。その後、VSはResxName.Designer.csを生成します。

var rm = ResxName.ResourceManager;
于 2012-10-23T13:02:32.807 に答える
3

使用している.NETFrameworkのバージョンがわかりません。

ResourceManagerを実現する方法を変更してみてください。

ResourceManager rm = 
     new ResourceManager("Project.Resource", 
                         System.Reflection.Assembly.Load("App_LocalResources"));

動作するはずです。

これは、具象リソースマネージャの自動生成された.designer.csクラスの静的プロパティとしても公開されます。

于 2009-10-12T13:42:19.133 に答える
3

ResourceManager の使い方が間違っていると思います。この投稿を参照してください。

また、Visual Studio コマンド プロンプトを開いて resgen.exe を実行すると、リソース ファイルをある形式から別の形式に変換するために使用される (つまり、resx からリソースへ) と表示されます。ファイルをresxからリソースに変換し、resourceManagerを使用してロードする必要があると思います。

于 2009-09-22T16:34:45.513 に答える
0

.resx 拡張子を明示的に追加します。

プロジェクトに適している場合は、自動生成されたクラスを使用してそのプロパティを使用することもできます。

于 2009-09-22T16:02:40.483 に答える