我想序列化一个类Product,并将所有List<Product>
保存在txt中。我使用验证规则来验证界面中的价格。
当我调用序列化方法时,我得到SerializationException
,类型System.Windows.Controls.ValidationRule
未标记为可序列化。
Pl我该如何解决? Thnks。
我的代码:
在Product.cs中
[Serializable()]
public class Product : ValidationRule
{
protected float _price;
public float Price
{
get;set;
}
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
bool status = float.TryParse(value.ToString(), out this._price);
return status ? ValidationResult.ValidResult
: new ValidationResult(false, "Message");
}
}
在MainWindows.xaml.cs中:
private List<Product> _products;
private string _directory;
private BinaryFormatter formatter;
// Other methods, constructors
InsertProduct(new Product(tb_price.Text));
// Some code
public void Serializar()
{
using (FileStream fs = new FileStream(_directory, FileMode.OpenOrCreate))
{
formatter.Serialize(fs, (List<Product>)_products);
}
}
答案 0 :(得分:0)
使用
标记您的Validate属性[System.Runtime.Serialization.IgnoreDataMember]