다음 C # 클래스가 있습니다.
[XmlRoot("Customer")]
public class MyClass
{
[XmlElement("CustId")]
public int Id {get;set;}
[XmlElement("CustName")]
public string Name {get;set;}
}
그런 다음 다음 함수를 사용하여 클래스 개체를 Xml로 직렬화합니다.
public static XmlDocument SerializeObjectToXML(object obj, string sElementName)
{
XmlSerializer serializer =
new XmlSerializer(obj.GetType(), new XmlRootAttribute("Response"));
using (MemoryStream ms = new MemoryStream())
{
XmlDocument xmlDoc = new XmlDocument();
serializer.Serialize(ms, obj);
ms.Position = 0;
xmlDoc.Load(ms);
}
}
XML에 대한 현재 출력은 다음과 같습니다.
<Response>
<CustId></CustId>
<CustName></CustName>
</Response>
그러나 어떻게 응답을 얻을 수 있습니까?
<Response>
<Customer>
<CustId></CustId>
<CustName></CustName>
</Customer>
</Response>
XmlElementAttribute
on MyClass
( http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlelementattribute (v = vs.110 ) .aspx 에 따라 실제로 유효하지 않습니다)을 다음 으로 변경하십시오 XmlTypeAttribute
.
[XmlType("Customer")]
public class MyClass
{
[XmlElement("CustId")]
public int Id { get; set; }
[XmlElement("CustName")]
public string Name { get; set; }
}
직렬화 방법은 이제 다음과 같을 수 있습니다 (질문의 경우와 동일하지만의 생성자에 두 번째 매개 변수가 없음 XmlSerializer
).
public static XmlDocument SerializeObjectToXML(object obj, string sElementName)
{
XmlSerializer serializer = new XmlSerializer(obj.GetType());
XmlDocument xmlDoc = new XmlDocument();
using (MemoryStream ms = new MemoryStream())
{
serializer.Serialize(ms, obj);
ms.Position = 0;
xmlDoc.Load(ms);
}
return xmlDoc;
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다