C#WPF中的SerializationException

时间:2013-11-29 19:23:17

标签: c# wpf c#-4.0 generics serialization

我想序列化一个类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);
            }
        }

1 个答案:

答案 0 :(得分:0)

使用

标记您的Validate属性
[System.Runtime.Serialization.IgnoreDataMember]