2016-08-22 7 views
1

우리는 XML serializer를 사용하여 객체의 상태를 저장하려고합니다. 토론을 위해 다음과 같이 객체를 가정합니다.xml Serializer를 사용하여 개체 상태 저장. 속성 또는 하드 코드 된 문자열에서 노드 이름을 가져 오는 방법을 권장합니까?

Class Program 
{ 
    public string Char1 {get; set;} 
    public XMLNode Serialize (XmlDocument doc) 
    { 
     var node = document.CreateElement("Mod") 
     node.SetAttribute("Char1", Char1.ToString()); 
    } 
} 

여기서 Char1 속성의 값을 가져 와서 Char1 이름의 노드에 쓰려고합니다.

리플렉션을 사용하여 Char1 속성에서 파생 된 노드 이름 "Char1"을 갖는 것이 더 좋습니까? 그러나 이로 인해 속성 이름이 변경 될 때 XML 문서가 자주 변경 될 수 있습니다.

속성 이름이 변경되고 문자열이 업데이트되지 않으면 xml 문서의 값이 해당 필드의 컨텍스트와 일치하지 않습니다.

어떤 접근 방식이 바람직합니까?

xml 파일을 쓰는 동안 마법의 문자열을 피하는 다른 방법이 더 있으면 제안하십시오.

답변

0

다음과 같은 방법을 선호합니다. 직렬화하려는 모든 데이터를 보유하는 클래스를 만듭니다. 그런 다음 XmlSerializer의 인스턴스를 다음과 같이 만듭니다.

+0

질문의 맥락에서 제안하려는 것은 속성 자체에서 노드 이름을 얻는 것입니다. 제 이해가 맞습니까? – Versatile