SoapCodeExporter.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. //
  2. // System.Xml.Serialization.SoapCodeExporter
  3. //
  4. // Author:
  5. // Tim Coleman ([email protected])
  6. //
  7. // Copyright (C) Tim Coleman, 2002
  8. //
  9. using System.CodeDom;
  10. namespace System.Xml.Serialization {
  11. public class SoapCodeExporter {
  12. #region Fields
  13. CodeNamespace codeNamespace;
  14. CodeCompileUnit codeCompileUnit;
  15. CodeAttributeDeclarationCollection includeMetadata;
  16. #endregion
  17. #region Constructors
  18. public SoapCodeExporter (CodeNamespace codeNamespace)
  19. {
  20. includeMetadata = new CodeAttributeDeclarationCollection ();
  21. this.codeNamespace = codeNamespace;
  22. }
  23. public SoapCodeExporter (CodeNamespace codeNamespace, CodeCompileUnit codeCompileUnit)
  24. : this (codeNamespace)
  25. {
  26. this.codeCompileUnit = codeCompileUnit;
  27. }
  28. #endregion // Constructors
  29. #region Properties
  30. public CodeAttributeDeclarationCollection IncludeMetadata {
  31. get { return includeMetadata; }
  32. }
  33. #endregion // Properties
  34. #region Methods
  35. public void AddMappingMetadata (CodeAttributeDeclarationCollection metadata, XmlMemberMapping member)
  36. {
  37. AddMappingMetadata (metadata, member, false);
  38. }
  39. public void AddMappingMetadata (CodeAttributeDeclarationCollection metadata, XmlMemberMapping member, bool forceUseMemberName)
  40. {
  41. TypeData memType = member.TypeMapMember.TypeData;
  42. CodeAttributeDeclaration att = new CodeAttributeDeclaration ("System.Xml.Serialization.SoapElement");
  43. if (forceUseMemberName || (member.ElementName != member.MemberName))
  44. att.Arguments.Add (new CodeAttributeArgument ("ElementName", new CodePrimitiveExpression(member.ElementName)));
  45. if (!TypeTranslator.IsDefaultPrimitiveTpeData (memType))
  46. att.Arguments.Add (new CodeAttributeArgument ("DataType", new CodePrimitiveExpression(member.TypeName)));
  47. if (att.Arguments.Count > 0)
  48. metadata.Add (att);
  49. }
  50. [MonoTODO]
  51. public void ExportMembersMapping (XmlMembersMapping xmlMembersMapping)
  52. {
  53. throw new NotImplementedException ();
  54. }
  55. [MonoTODO]
  56. public void ExportTypeMapping (XmlTypeMapping xmlTypeMapping)
  57. {
  58. throw new NotImplementedException ();
  59. }
  60. #endregion // Methods
  61. }
  62. }