2011-07-07 16 views
0

私はこれを本当に明確にする必要があります。 myfile.resxファイルを読み込もうとしていません。 myresourcenamespace.myfile.dllからコンテンツを読み込もうとしています。読み込まれたDLLからRESXコンテンツを読み込み、RESXファイルではない

私は、DLLにプリロードされているものにアクセスすることで、RESXコンテンツに含まれるKVPの辞書を作成したいと考えています。私の現在の解決策は、存在するファイルと、ファイルが必要な場所にあることを保証するためのコピーの束には多すぎます。この時点で、DLLの信頼性は向上しています。

"new resourcemanager(myassemblytype)"を使用してアセンブリにアクセスできましたが、この時点で固まっています。私は実際のコンテンツをメモリから読み取ることができません。私は、リソースマネージャーからのストリームとしてコンテンツにアクセスしようとすると、MissingManifestExceptionに対して継続的に実行します。ここで

は私の成功コードである:ここでは

var myType = Type.GetType("ViewRes.StaticMessages", true); 
var myResManager = new ResourceManager("StaticMessages", 
          System.Reflection.Assembly.GetAssembly(myType)); 

は私の失敗コードです:

using (var fileReader = new ResXResourceSet(
          myResManager.GetStream(myResManager.BaseName))) 
{ 
//.... code read here 
} 

ResXResourceSetはMissingManifestExceptionをスローします。私は考えることができるすべてを試みました。

答えて

0

の代わりに:

var myType = Type.GetType("ViewRes.StaticMessages", true); 
var myResManager = new ResourceManager("StaticMessages", 
         System.Reflection.Assembly.GetAssembly(myType)); 

は次のように試してみてください:

var myType = Type.GetType("ViewRes.StaticMessages", true); 
var myResManager = new ResourceManager("StaticMessages", myType.Assembly); 
// you could specify the desired culture for which you would like to get the 
// resource values 
var culture = CultureInfo.InvariantCulture; 
var resourceSet = myResManager.GetResourceSet(culture, true, true); 

は、今あなたがループすることができます:

foreach (DictionaryEntry item in resourceSet) 
{ 
    var key = item.Key; 
    var value = item.Value; 
} 
+0

これは有望に見えました。一度適用されても、私はまだ同じ "MissingManifestResourceException"に遭遇しています。 – itanex

+0

GetResourceSet、GetObject、GetStreamはすべてこの例外を生成します – itanex

関連する問題