Operation.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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. [XmlIgnore]
  62. public PortType PortType {
  63. get { return portType; }
  64. }
  65. #endregion // Properties
  66. #region Methods
  67. public bool IsBoundBy (OperationBinding operationBinding)
  68. {
  69. return (operationBinding.Name == Name);
  70. }
  71. internal void SetParent (PortType portType)
  72. {
  73. this.portType = portType;
  74. }
  75. #endregion
  76. }
  77. }