Имеют следующую структуру
[Serializable]
public class Parent
{
public int x = 5;
}
[Serializable]
public class Child : Parent
{
public HashAlgorithm ha; //This is not Serializable
}
Я хочу сериализовать это, используя следующий код:
public class Util {
static public byte[] ObjectToByteArray(Object obj)
{
if (obj == null)
{
return null;
}
BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
bf.Serialize(ms, obj);
return ms.ToArray();
}
}
Я работаю с объектами типа Child
в моем коде, однакоУ меня есть поле внутри объекта Child
, которое не сериализуемо (например, HashAlgorithm).Следовательно, я попытался преобразовать в тип Parent
, используя следующий код:
public byte[] tryToSerialize(Child c)
{
Parent p = (Parent) c;
byte[] b = Util.ObjectToByteArray(p);
return b;
}
Однако это возвращает ошибку, что HashAlgorithm
не сериализуется, несмотря на попытку сериализовать дочерний элемент, который не включает этополе.Как я могу выполнить то, что мне нужно?