C♯相談室 Part21
■ このスレッドは過去ログ倉庫に格納されています
0393デフォルトの名無しさん
05/02/08 01:12:57リソースはアセンブリに埋め込むモノってのは当然だよね?
アセンブリとは要するに.exeまたは.dllである、と言うのも分かるよね?
> System.Reflection.Assembly assembly = System.Reflection.Assembly.GetEntryAssembly();
エントリポイントがあるアセンブリを取得してるって事は、
実行時にエントリポイントとなるMainメソッドを含むアセンブリを取得するって事で、
通常プロセスを開始した.exeのアセンブリを指すよね?
リソースを持ってる、.dllのアセンブリを取得しないといけないのに。
typeof(*.dllで定義してる何らかのクラス*).Assemblyとやると.dllのAssemblyインスタンスを簡単に取得できる。
> stream = assembly.GetManifestResourceStream("ProjectDLL.hoge.txt");
ProjectDLLってのは、さてどこから出てきたのかな?
名前空間がって言ったって、一つのアセンブリ、一つのファイルに複数の名前空間を持たせる事もできるよ?
リソースファイルの名前が実際にProjectDLL.hoge.txtだったら正しいけれど、多分単にhoge.txtでしょ。
GetManifestResourceStreamメソッドの解説に
> type の完全名が "MyNameSpace.MyClasses" で、name が "Net" の場合、
> GetManifestResourceStream は、MyNameSpace.Net という名前のリソースを検索します。
って書いてるけど、オーバーロードを良く読むとこれはGetManifestResourceStream(Type, string)限定の解説なんだよね。
■ このスレッドは過去ログ倉庫に格納されています