XmlMembersMapping.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. //
  2. // System.Xml.Serialization.XmlMembersMapping
  3. //
  4. // Author:
  5. // Tim Coleman ([email protected])
  6. // Lluis Sanchez Gual ([email protected])
  7. //
  8. // Copyright (C) Tim Coleman, 2002
  9. //
  10. using System.Reflection;
  11. namespace System.Xml.Serialization {
  12. public class XmlMembersMapping : XmlMapping {
  13. string _elementName;
  14. string _namespace;
  15. bool _hasWrapperElement;
  16. XmlMemberMapping[] _mapping;
  17. internal XmlMembersMapping ()
  18. {
  19. }
  20. internal XmlMembersMapping (XmlMemberMapping[] mapping): this ("", null, false, false, mapping)
  21. {
  22. }
  23. internal XmlMembersMapping (string elementName, string ns, XmlMemberMapping[] mapping): this (elementName, ns, true, false, mapping)
  24. {
  25. }
  26. internal XmlMembersMapping (string elementName, string ns, bool hasWrapperElement, bool writeAccessors, XmlMemberMapping[] mapping)
  27. {
  28. _elementName = elementName;
  29. _namespace = ns;
  30. _hasWrapperElement = hasWrapperElement;
  31. _mapping = mapping;
  32. ClassMap map = new ClassMap ();
  33. map.IgnoreMemberNamespace = writeAccessors;
  34. foreach (XmlMemberMapping mm in mapping)
  35. map.AddMember (mm.TypeMapMember);
  36. ObjectMap = map;
  37. }
  38. #region Properties
  39. public int Count {
  40. get { return _mapping.Length; }
  41. }
  42. public string ElementName {
  43. get { return _elementName; }
  44. }
  45. public XmlMemberMapping this [int index] {
  46. get { return _mapping[index]; }
  47. }
  48. public string Namespace {
  49. get { return _namespace; }
  50. }
  51. public string TypeName {
  52. [MonoTODO]
  53. get { throw new NotImplementedException (); }
  54. }
  55. public string TypeNamespace {
  56. [MonoTODO]
  57. get { throw new NotImplementedException (); }
  58. }
  59. internal bool HasWrapperElement {
  60. get { return _hasWrapperElement; }
  61. }
  62. #endregion // Properties
  63. }
  64. }