Operation.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. //
  2. // System.Web.Services.Description.Operation.cs
  3. //
  4. // Author:
  5. // Tim Coleman ([email protected])
  6. //
  7. // Copyright (C) Tim Coleman, 2002
  8. //
  9. using System.ComponentModel;
  10. using System.Xml;
  11. using System.Xml.Serialization;
  12. namespace System.Web.Services.Description {
  13. public sealed class Operation : DocumentableItem {
  14. #region Fields
  15. OperationFaultCollection faults;
  16. OperationMessageCollection messages;
  17. string name;
  18. string[] parameterOrder;
  19. PortType portType;
  20. #endregion // Fields
  21. #region Constructors
  22. public Operation ()
  23. {
  24. faults = new OperationFaultCollection (this);
  25. messages = new OperationMessageCollection (this);
  26. name = String.Empty;
  27. parameterOrder = null;
  28. portType = null;
  29. }
  30. #endregion // Constructors
  31. #region Properties
  32. [XmlElement ("fault")]
  33. public OperationFaultCollection Faults {
  34. get { return faults; }
  35. }
  36. [XmlElement ("output", typeof (OperationOutput))]
  37. [XmlElement ("input", typeof (OperationInput))]
  38. public OperationMessageCollection Messages {
  39. get { return messages; }
  40. }
  41. [XmlAttribute ("name", DataType = "NCName")]
  42. public string Name {
  43. get { return name; }
  44. set { name = value; }
  45. }
  46. [XmlIgnore]
  47. public string[] ParameterOrder {
  48. get { return parameterOrder; }
  49. set { parameterOrder = value; }
  50. }
  51. [DefaultValue ("")]
  52. [XmlAttribute ("parameterOrder")]
  53. public string ParameterOrderString {
  54. get {
  55. if (parameterOrder == null)
  56. return String.Empty;
  57. return String.Join (" ", parameterOrder);
  58. }
  59. set { ParameterOrder = value.Split (' '); }
  60. }
  61. public PortType PortType {
  62. get { return portType; }
  63. }
  64. #endregion // Properties
  65. #region Methods
  66. public bool IsBoundBy (OperationBinding operationBinding)
  67. {
  68. return (operationBinding.Name == Name);
  69. }
  70. internal void SetParent (PortType portType)
  71. {
  72. this.portType = portType;
  73. }
  74. #endregion
  75. }
  76. }