2012-01-05 1 views
0

다른 속성 유형을 가진 객체를 가져올 때 각 객체 속성의 유형을 정의해야하며 그에 따라 각 속성을 다른 방법으로 직렬화해야합니다. 다른 형식의 개체를 serialize하는 방법을 알고 있지만 어떻게이 속성을이 메서드와 함께 사용해야하고 다른 메서드를 사용해야하는지 모를 수 있습니다. 여기 객체 유형의 정의 방법

내 클래스의 예입니다 : 내가 사전 등록

를 직렬화

여기
[XmlType("Person")] // define Type 

public class Person 
{ 
    [XmlElement("PropertyType")] 
    public PropertyType PropertyType { get; set; } 

    [XmlElement("ID")] 
    public string ID { get; set; } 

    [XmlElement("Name")] 
    public string Name { get; set; } 

    [XmlElement("City")] 
    public string City { get; set; } 

    [XmlElement("Age")] 
    public Dictionary<object, object> Age { get; set; } 
} 

내가 직렬화 INT, 문자열 목록 속성 여기

public static string XmlSerializeUsualTypes(Object item) {} 

public static string XmlSerializeDictionaryTypes(Object item) {} 
+0

나는 그 질문을 이해하지 못한다. 무슨 문제 있니? – Amy

+0

클래스 Person의 객체를 serialize해야합니다. XML serialization과 비 직렬화 가능한 속성 유형 사전이있는 속성이 있으므로 일반 속성 및 사전 형식의 속성을 serialize하는 메소드를 작성했습니다. 이제 다른 methode 함께 다른 속성을 serialize 할 필요가? 이 속성을이 메서드와 함께 사용하고 다른 메서드를 사용하여 모름을 알리는 방법을 모릅니다. – revolutionkpi

답변

0

상속 Dictionary<K,V> 및을 사용하여 IXmlSerializable 인터페이스를 구현하십시오.방법. XmlSerializer합니다 (Person 객체를 직렬화 할 때 예를 들면)는 (우리의 경우에 poperty의 형태에 구현 예 MyXmlDictionary<K,V>) IXmlSerializable.WriteXml를 호출IXmlSerializable 그 속성을 직렬화 구현 속성을 발생

public class MyXmlDictionary<K, V> : Dictionary<K,V>, IXmlSerializable 
{ 
    // … implement IXmlSerializable methods here … 
} 

.

+0

이 인터페이스를 사용하고 상속 사전 을 사용했습니다. 이 코드를 실현하는 방법을 묻는이 – revolutionkpi

+0

하지만 어떻게 내가 현재 methode 개체의 속성을 serialize하려면 말할 수있는, 그 사전을 serialize 정확히? – revolutionkpi