Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 序列化:强制元素值必须唯一_C#_Serialization - Fatal编程技术网

C# 序列化:强制元素值必须唯一

C# 序列化:强制元素值必须唯一,c#,serialization,C#,Serialization,我正在使用.NET4.5用C编写一个类,并试图在反序列化该类的列表时强制执行一条规则,即其中一个字段在所有字段中必须是唯一的。基本上: [Serializable] public class Item { [XmlAttribute] public string Name { get; set; } [XmlAttribute] public int ID { get; set; } } 当我序列化或反序列化此类的列表时,我希望验证所有ID在给定集合中是否唯一

我正在使用.NET4.5用C编写一个类,并试图在反序列化该类的列表时强制执行一条规则,即其中一个字段在所有字段中必须是唯一的。基本上:

[Serializable]
public class Item
{
    [XmlAttribute]
    public string Name { get; set; }

    [XmlAttribute]
    public int ID { get; set; }
}

当我序列化或反序列化此类的列表时,我希望验证所有ID在给定集合中是否唯一。我可以使用任何Xml强制执行此操作吗。。。属性?或者我必须接受反序列化为有效的Xml,然后在代码端处理它吗?谢谢

你不应该在序列化之前处理好吗?似乎是责任的混合。我希望双方都有责任。如果有人要编辑Xml,我希望序列化程序能够在读取Xml之前验证Xml的状态,而不是序列化任务。读入并验证/修复它。