2013-07-24 3 views
2

을 구현하지 않고 수집을 나는 수업이 있습니다직렬화 읽기 전용 IXmlSerializable

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

내가 XmlSerializer를 사용하여 XML로 직렬화하고 싶은 나는 또한의 FxCop을 준수해야합니다. 문제는 FxCop이 속성에 대해 읽기 전용 컬렉션 만 노출하려고하지만 ReadOnlyCollection은 직렬화 할 수 없다는 것입니다. 너무 고통 스럽기 때문에 IXmlSerializable을 구현하고 싶지 않습니다. 다른 해결책이 있습니까?

+0

어떤 시리얼 라이저를 사용하고 있습니까? XmlAttribute가 컬렉션이나 개인 필드에서 작동하지 않기 때문에 묻습니다. Serializable은 XmlSerializer에서 사용하지 않습니다. –

+0

XmlSerializer를 사용합니다. – Peekyou

+0

K; 현재 이러한 속성 중 아무 것도 유용하지 않습니다. 혼동을 피하려면 [Serializable]과 [XmlAttribute]를 모두 제거해야 할 수도 있습니다 –

답변

0

옵션 : 당신은 문자열 배열이 아닌 목록-의 문자열을 사용할 수

  • ; 이것은 컬렉션을 직접 조작 할 수 있기 때문에 setter가 필요하지 않습니다.
  • 당신은 fxcop이 항상 일반화 될 것이라는 것을 받아 들일 수 있으며 때로는 일반화가 특정 컨텍스트에 맞지 않을 수도 있습니다 - 의미 : 단순히 fxcop을 무시합니다. 이 경우