Operation.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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. string parameterOrderString;
  20. PortType portType;
  21. #endregion // Fields
  22. #region Constructors
  23. public Operation ()
  24. {
  25. faults = new OperationFaultCollection (this);
  26. messages = new OperationMessageCollection (this);
  27. name = String.Empty;
  28. parameterOrder = null;
  29. parameterOrderString = String.Empty;
  30. portType = null;
  31. }
  32. #endregion // Constructors
  33. #region Properties
  34. [XmlElement ("fault")]
  35. public OperationFaultCollection Faults {
  36. get { return faults; }
  37. }
  38. [XmlElement ("output", typeof (OperationOutput))]
  39. [XmlElement ("input", typeof (OperationInput))]
  40. public OperationMessageCollection Messages {
  41. get { return messages; }
  42. }
  43. [XmlAttribute ("name", DataType = "NCName")]
  44. public string Name {
  45. get { return name; }
  46. set { name = value; }
  47. }
  48. [XmlIgnore]
  49. public string[] ParameterOrder {
  50. get { return parameterOrder; }
  51. set { parameterOrder = value; }
  52. }
  53. [DefaultValue ("")]
  54. [XmlAttribute ("parameterOrder")]
  55. public string ParameterOrderString {
  56. get { return String.Join (" ", parameterOrder); }
  57. set { ParameterOrder = value.Split (' '); }
  58. }
  59. public PortType PortType {
  60. get { return portType; }
  61. }
  62. #endregion // Properties
  63. #region Methods
  64. public bool IsBoundBy (OperationBinding operationBinding)
  65. {
  66. return (operationBinding.Name == Name);
  67. }
  68. internal void SetParent (PortType portType)
  69. {
  70. this.portType = portType;
  71. }
  72. #endregion
  73. }
  74. }