Я загружаю внешние библиотеки, используя
Assembly assembly = Assembly.LoadFile(assemblyPath);
foreach (Type assemblyType in assembly.GetTypes())
{
if (assemblyType.IsSubclassOf(typeof(Chip.Chip)))
{
Chip.Chip chip = (Chip.Chip)Activator.CreateInstance(assemblyType);
this[chip.Name] = new ChipAssembly()
{
Name = chip.Name,
Description = chip.Description,
Image = chip.Image,
Type = assemblyType
};
}
}
Работает нормально. ChipAssembly
- это помощник, который содержит необходимые поля + тип, который помогает мне создать его экземпляр, как только пользователь запросит его явно.
Теперь я использую двоичную сериализацию, чтобы сохранить ее в файл, включая тип. Когда я десериализую, он выдает SerializationException
, говоря, что AssemblyNamespace.AssemblyClass
не найден. Тем не менее, когда я устанавливаю тип в AssemblyClass
при сериализации, он десериализуется правильно. Я чувствую, что я как-то назначаю неправильный сборочный тип, не так ли? :)
AssemblyNamespace.AssemblyClass
является просто примером загруженной сборки.