使用TypeConverter进行序列化是正常的做法吗?有一个我不拥有的类有一个“有损”的TypeConverter。转换为字符串时,它会使用“G4”格式化其浮点数据,以便在PropertyGrid中显示此类型时,它很容易读取。
我还想使用此TypeConverter从字符串转换,创建此类的实例。现在我正在检查传递给TypeConverter.ConvertTo的CultureInfo,如果CultureInfo不是InvariantCulture,则仅使用漂亮的有损转换。
我想知道我是否采取了错误的方式。
答案 0 :(得分:1)
如果要将数据序列化为文件或其他交换格式,以便在不同文化的用户之间共享,那么使用InvariantCulture之外的任何内容都将无效。
当已知所有需要的类型具有适当的TypeConverter时,TypeConverter可用于简单的序列化方案。
答案 1 :(得分:1)
嗯,这不是正常的做法。您希望某些类型控制对象如何被序列化,以便它不会使您与仅与PropertyGrid相关的细节绊倒。这通常不难做到:
class VendorSerialized {
public VendorSerialized(VendorType obj) {
// Set properties
//...
}
public VendorType AfterSerialization() {
var obj = new VendorType();
// Set the vendor object properties from deserialized data
//...
return obj;
}
// Properties here...
//...
}
问题解决了:))