2013-07-24 3 views
2

У меня есть класс:Serialize только для чтения коллекции без внедрения IXmlSerializable

[Serializable] 
public class Profile 
{ 
    [XmlAttribute] 
    private string[] permissions; 
    public string[] Permissions 
    { 
     get { return permissions; } 
     set { permissions = value; } 
    } 
} 

Я хочу, чтобы сериализовать в XML со XmlSerializer и я также должен быть совместимы с FxCop. Проблема в том, что FxCop хочет только открыть коллекцию только для чтения для свойств, но, конечно, ReadOnlyCollection не сериализуем. Я не хочу реализовывать IXmlSerializable, потому что это слишком болезненно. Есть ли другое решение?

+0

Какой сериализатор вы используете? Я спрашиваю, потому что XmlAttribute не работает с коллекциями или в частных полях - и Serializable не используется XmlSerializer –

+0

Я использую XmlSerializer – Peekyou

+0

K; в настоящее время ни один из этих атрибутов ничего полезного - вы можете удалить оба [Serializable] и [XmlAttribute], чтобы избежать путаницы –

ответ

0

Варианты:

  • вы можете использовать список-оф-строки, а не строки массива; это не требует установки, так как сбор можно напрямую манипулировать
  • вы можете согласиться с тем, что fxcop всегда будет обобщением, и что иногда обобщение не подходит для вашего конкретного контекста - значит: просто игнорируйте fxcop в этот случай
Смежные вопросы