Вот мой код, который загружает файл 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 имеют одинаковое имя. Один находится на correctPath
, а второй - на другом пути. Как решить эту проблему?
MyOptions - это проект библиотеки классов, из которого расширяется загружаемая мной библиотека.