У меня есть класс, который я сериализирую в файл, т.е.myfile01.myfile.Я использую двоичную сериализацию (не XML).
В версии 1 этого класса было поле 'ColoredFont'.Это класс, который содержит шрифт и цвет.
Во второй версии класса был изменен класс ColoredFont, а поле «Шрифт» заменено на «SerializableFont».
Теперь проблема: когда я хочу открыть файлы версии 1, Я получаю сообщение об ошибке:
Object of type 'System.Drawing.Font' cannot be converted to
type 'Project.SerializableFont'.
Я уже использую пользовательский механизм связывания сериализации
public class Binder : SerializationBinder {
public override Type BindToType(string assemblyName, string typeName) {
Type tyType = null;
string sShortAssemblyName = assemblyName.Split(',')[0];
Assembly[] ayAssemblies = AppDomain.CurrentDomain.GetAssemblies();
if (sShortAssemblyName.ToLower() == "project"
|| sShortAssemblyName == "SoftwareV_3.0" )
{
sShortAssemblyName = "SoftwareV_4.0";
}
foreach (Assembly ayAssembly in ayAssemblies) {
if (sShortAssemblyName == ayAssembly.FullName.Split(',')[0]) {
tyType = ayAssembly.GetType(typeName);
break;
}
}
return tyType;
}
}
Как я могу сказать десериализации преобразовать System.Drawing.Font в SerializableFont ??