XmlMemberMapping.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. //
  2. // System.Xml.Serialization.XmlMemberMapping
  3. //
  4. // Author:
  5. // Tim Coleman ([email protected])
  6. // Lluis Sanchez Gual ([email protected])
  7. //
  8. // Copyright (C) Tim Coleman, 2002
  9. //
  10. namespace System.Xml.Serialization
  11. {
  12. public class XmlMemberMapping {
  13. XmlTypeMapMember _mapMember;
  14. string _elementName;
  15. string _memberName;
  16. string _namespace;
  17. string _typeNamespace;
  18. internal XmlMemberMapping (string memberName, string defaultNamespace, XmlTypeMapMember mapMem, bool encodedFormat)
  19. {
  20. _mapMember = mapMem;
  21. _memberName = memberName;
  22. if (mapMem is XmlTypeMapMemberElement)
  23. {
  24. XmlTypeMapElementInfo info = (XmlTypeMapElementInfo) ((XmlTypeMapMemberElement)mapMem).ElementInfo[0];
  25. _elementName = info.ElementName;
  26. if (encodedFormat)
  27. {
  28. _namespace = defaultNamespace;
  29. if (info.MappedType != null) _typeNamespace = "";
  30. else _typeNamespace = info.DataTypeNamespace;
  31. }
  32. else
  33. {
  34. _namespace = info.Namespace;
  35. if (info.MappedType != null) _typeNamespace = info.MappedType.Namespace;
  36. else _typeNamespace = "";
  37. }
  38. }
  39. else
  40. {
  41. _elementName = _memberName;
  42. _namespace = "";
  43. }
  44. }
  45. #region Properties
  46. public bool Any {
  47. get { return _mapMember is XmlTypeMapMemberAnyElement; }
  48. }
  49. public string ElementName {
  50. get { return _elementName; }
  51. }
  52. public string MemberName {
  53. get { return _memberName; }
  54. }
  55. public string Namespace {
  56. get { return _namespace; }
  57. }
  58. public string TypeFullName {
  59. get { return _mapMember.TypeData.FullTypeName; }
  60. }
  61. public string TypeName {
  62. get { return _mapMember.TypeData.XmlType; }
  63. }
  64. public string TypeNamespace {
  65. get { return _typeNamespace; }
  66. }
  67. internal XmlTypeMapMember TypeMapMember {
  68. get { return _mapMember; }
  69. }
  70. #endregion // Properties
  71. }
  72. }