컬렉션의 항목에 대한 요소 이름을 지정하는 일반적인 수집을 직렬화 :다음과 같이 내가 문자열의 일반적인 목록에서 파생 된 간단한 클래스가
[Serializable]
[System.Xml.Serialization.XmlRoot("TestItems")]
public class TemplateRoleCollection : List<string>
{
}
나는이를 직렬화 할 때, 나는 다음과 같은 XML을 얻을 :
<TestItems>
<string>cat</string>
<string>dog</string>
<string>wolf</string>
</TestItems>
컬렉션의 항목을 serialize하는 데 사용되는 XML 요소 이름을 재정의하는 방법이 있습니까? 나는 다음과 같은 XML을 생성 할 싶습니다 :
이<TestItems>
<TestItem>cat</TestItem>
<TestItem>dog</TestItem>
<TestItem>wolf</TestItem>
</TestItems>
+1 완벽하게 작동했습니다. 감사. –
방금이 문제가 발생했습니다. 이 작업을 수행하고 목록에서 상속받을 수있는 방법이 있습니까? 이 대답은 잘 작동하지만, 내가 찾고있는 해결책보다는 해결 방법입니다. 제 경우에는 이미 [XmlRoot] 특성으로 표시되어있는 사용자 지정 (비 프리미티브) 형식의 목록이므로 serializer가 List 클래스를 고려하지 않을 때 놀랐습니다. –
si618
@Si :'XmlRootAttribute'는 당신이 생각하는 것처럼 보이지 않습니다. 이 클래스는 독자적으로 클래스를 직렬화 할 때만 루트 요소 (AKA 문서 요소)의 이름을 제어합니다. 아마도 당신은'XmlTypeAttribute'를 찾고 있습니까? – Aaronaught