7

ASP.NET MVC アプリケーションにリソース (XSD ファイル) を埋め込みました。ここで、このファイルをコードから取得したいと思います。

のドキュメントを見るとAssembly.GetManifestResourceStream()、「要求されているマニフェスト リソースの大文字と小文字を区別する名前」である文字列引数を取ります。

もちろん、MSDN には例がありませんでした。マニフェスト リソースの名前は? ファイルの名前ですか?ファイルのフルパスと名前ですか?それとも、リソース自体に付けられた別の名前ですか? もしそうなら、その名前をどのように設定すればよいですか?

4

1 に答える 1

20

私の記憶が正しければ、それはアセンブリの名前とファイルのフルネーム(拡張子を含む)の間にドットを入れたものです。

確実に見つけるための簡単な方法: Assembly.GetManifestResourceNamesメソッドを使用します。

string[] result = myAssembly.GetManifestResourceNames();

...そしてresultデバッガーでの内容を調べます。

ETA:ええと、リソースが1つしかない場合は、次のコードを使用して名前を取得できます。

string name = myAssembly.GetManifestResourceNames()[0];

ただし、お勧めしません。VSが空のリソースファイルを作成してアセンブリにコンパイルすることがあるため、思ったよりも多くのアセンブリリソースがある可能性があります。

ETA 2018-06-26:2013年に思いもよらなかった別の方法があります。これにより、元のリソースの名前に基づいたリソース名が表示されます。

string resourceFileName = "myResource.xsd";
string resourceName = myAssembly.GetManifestResourceNames()
                                .Where(name => name.Contains(resourceFileName))
                                .FirstOrDefault();
于 2013-03-07T17:23:30.817 に答える