2 // XmlTypeMapMemberElement.cs:
5 // Lluis Sanchez Gual (lluis@ximian.com)
7 // (C) 2002, 2003 Ximian, Inc. http://www.ximian.com
11 using System.Collections;
13 namespace System.Xml.Serialization
15 // XmlTypeMapMemberElement
16 // A member of a class that must be serialized as an XmlElement
18 internal class XmlTypeMapMemberElement: XmlTypeMapMember
20 XmlTypeMapElementInfoList _elementInfo;
23 public XmlTypeMapMemberElement()
27 public XmlTypeMapElementInfoList ElementInfo
29 get { return _elementInfo; }
30 set { _elementInfo = value; }
33 public string ChoiceMember
35 get { return _choiceMember; }
36 set { _choiceMember = value; }
39 public XmlTypeMapElementInfo FindElement (object ob, object memberValue)
41 if (_elementInfo.Count == 1)
42 return (XmlTypeMapElementInfo) _elementInfo[0];
43 else if (_choiceMember != null)
45 string choiceValue = GetValue (ob, _choiceMember).ToString();
46 foreach (XmlTypeMapElementInfo elem in _elementInfo)
47 if (elem.ChoiceValue == choiceValue) return elem;
51 Type type = memberValue.GetType();
52 foreach (XmlTypeMapElementInfo elem in _elementInfo)
53 if (elem.TypeData.Type == type) return elem;
59 // XmlTypeMapMemberList
60 // A member of a class that must be serialized as a list
62 internal class XmlTypeMapMemberList : XmlTypeMapMemberElement
64 XmlTypeMapping _listMap;
68 public XmlTypeMapping ListTypeMapping
70 get { return _listMap; }
71 set { _listMap = value; }
74 public string ElementName
76 get { return _elementName; }
77 set { _elementName = value; }
80 public string Namespace
82 get { return _namespace; }
83 set { _namespace = value; }
87 // XmlTypeMapMemberFlatList
88 // A member of a class that must be serialized as a flat list
90 internal class XmlTypeMapMemberFlatList : XmlTypeMapMemberElement
95 public ListMap ListMap
97 get { return _listMap; }
98 set { _listMap = value; }
101 public int FlatArrayIndex
103 get { return _flatArrayIndex; }
104 set { _flatArrayIndex = value; }