Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.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# 序列化只读集合而不实现IXmlSerializable_C#_Serialization_Fxcop_Readonly Collection - Fatal编程技术网

C# 序列化只读集合而不实现IXmlSerializable

C# 序列化只读集合而不实现IXmlSerializable,c#,serialization,fxcop,readonly-collection,C#,Serialization,Fxcop,Readonly Collection,我有一门课: [Serializable] public class Profile { [XmlAttribute] private string[] permissions; public string[] Permissions { get { return permissions; } set { permissions = value; } } } 我想用XmlSerializer在XML中序列化它,而且我还必须

我有一门课:

[Serializable]
public class Profile
{
    [XmlAttribute]
    private string[] permissions;
    public string[] Permissions
    {
        get { return permissions; }
        set { permissions = value; }
    }
}
我想用XmlSerializer在XML中序列化它,而且我还必须遵守FxCop。问题是FxCop只想公开属性的只读集合,但ReadOnlyCollection当然是不可序列化的。我不想实现IXmlSerializable,因为这太痛苦了。 还有其他解决方案吗?

选项:

  • 您可以使用字符串列表而不是字符串数组;这不需要setter,因为可以直接操作集合
  • 您可以接受fxcop总是一种泛化,有时泛化并不适合您的特定上下文-意思是:在这种情况下,只需忽略fxcop即可

您使用的是哪种序列化程序?我这样问是因为XmlAttribute在集合或私有字段上不起作用,XmlSerializerK也不使用Serializable;目前,这两个属性都没有任何用处-您可能希望同时删除[Serializable]和[XmlAttribute]以避免混淆