2
我試圖用一些資源生成一個程序集文件。我正在使用System.Reflection.Emit.ModuleBuilder
來定義資源。 AssemblyBuilder
保存程序集時不會出現任何錯誤,但是當我嘗試讀取資源時,ResourceManager
沒有任何條目,它的ResourceSets
。我不確定AssemblyBuilder
不保存更多資源,或者我的資源閱讀代碼有問題。反射|發送|動態資源生成 - 使用IResourceWriter.AddResource(key,value)添加資源值無法讀取
集生成代碼:
public void GenerateAsm()
{
string myAsmName = "MyAssembly.resources";
string myAsmFileName = myAsmName + ".dll";
string resourceName = "MyAssembly.Resource.fr.resources";
AppDomain appDomain = Thread.GetDomain();
AssemblyName asmName = new AssemblyName();
asmName.Name = myAsmName;
AssemblyBuilder myAsmBuilder = appDomain.DefineDynamicAssembly(asmName, AssemblyBuilderAccess.RunAndSave);
ModuleBuilder myModuleBuilder = myAsmBuilder.DefineDynamicModule(myAsmFileName,myAsmFileName);
IResourceWriter rw = myModuleBuilder.DefineResource(resourceName, "My Description", ResourceAttributes.Public);
rw.AddResource("ResKey1", "Resource value 1.");
rw.AddResource("ResKey2", "Resource value 2.");
myAsmBuilder.Save(myAsmFileName);
}
資源閱讀代碼:
public void ReadResource()
{
ResourceManager rm = new ResourceManager("MyAssembly.Resource.fr.resources", Assembly.LoadFrom("MyAssembly.resources.dll"));
string greeting = rm.GetString("ResKey1");
}
資源管理器可以加載資源,但它不具有任何鍵值對。