我继承了大量使用 BinaryFormatter 进行序列化的代码,现在我需要对其进行调试。目前所有的序列化代码都需要一个 IFormatter。
我有一个想法用 XmlSerializer 替换 BinaryFormatter,以便更轻松地检查序列化输出,但它们不兼容(没有通用基础或接口)。
是否有标准方法,例如使参数成为我的代码可以使用的某种通用序列化程序?理想情况下,我想在顶层创建我想要的任何具体序列化程序,然后将其传递下来,而较低级别不需要知道具体类型。
我目前拥有的示例:
BinaryFormatter bformatter = new BinaryFormatter(); //create a binary formatter
PutPw(bformatter, stream, panel.DevicePassword); //encode and stream the password
public static void PutPw(IFormatter bf, Stream stream, string pw)
{
...
bf.Serialize(stream, pw);
}