【发布时间】:2012-02-27 16:27:42
【问题描述】:
这是我的代码,它加载一个 dll 文件并在 xml 中写入有关该文件的信息:
MyOptions ass = MyOptionsList[MyOptionsList.Count - 1];
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
StringWriter sw = new StringWriter();
XmlSerializer serializer = new XmlSerializer(ass.GetType(),
new Type[] { typeof(MyOptions) });
serializer.Serialize(sw, ass);
//more code writing in an xml file
AppDomain.CurrentDomain.AssemblyResolve -= CurrentDomain_AssemblyResolve;
Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
return Assembly.LoadFrom(correctPath + ".dll");
}
问题发生在serializer.Serialize(sw, ass); 行。内部异常说我不能从一个 dll 转换到另一个。两个 dll 文件具有相同的名称。一个在correctPath 上,第二个在其他路径上。如何解决?
MyOptions 是一个类库项目,我正在加载的 dll 正在从该项目中扩展。
【问题讨论】:
-
你的代码想要达到什么目的?
-
@GregC 加载一个 dll 文件并在 xml 中写入有关该文件的信息。
-
这部分代码没有解释你是如何将 dll 放入 ass 中的。
-
确切的异常消息和堆栈跟踪是什么?
-
@Srcee 你还没有解释 MyOptions 实际上是什么。这显然是某种类,但我能想到的就是这些。此外,不会有异常错误消息指出您不能从一个 DLL 转换到另一个,因为 DLL 不是可以转换的东西。
标签: c# visual-studio-2005 assemblies