MessageContractTester.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Runtime.Serialization;
  5. using System.ServiceModel.Description;
  6. using System.ServiceModel;
  7. namespace MonoTests.Features.Contracts
  8. {
  9. [ServiceContract (Namespace = "http://MonoTests.Features.Contracts")]
  10. public interface IMessageContractTesterContract
  11. {
  12. [OperationContract (Action = "http://test/TestMessage_action", ReplyAction = "http://test/TestMessage_action")]
  13. TestMessage FormatDate (TestMessage testMessage);
  14. }
  15. [MessageContract]
  16. public class TestMessage
  17. {
  18. private string formatString;
  19. private DateTime date;
  20. private string formattedDate;
  21. public TestMessage ()
  22. {
  23. }
  24. public TestMessage (DateTime date, string formatString, string formattedDate)
  25. {
  26. this.date = date;
  27. this.formatString = formatString;
  28. this.formattedDate = formattedDate;
  29. }
  30. public TestMessage (TestMessage message)
  31. {
  32. this.date = message.date;
  33. this.formatString = message.formatString;
  34. this.formattedDate = message.formattedDate;
  35. }
  36. [MessageHeader]
  37. public string FormatString
  38. {
  39. get { return formatString; }
  40. set { formatString = value; }
  41. }
  42. [MessageBodyMember]
  43. public DateTime Date
  44. {
  45. get { return date; }
  46. set { date = value; }
  47. }
  48. [MessageBodyMember]
  49. public string FormattedDate
  50. {
  51. get { return formattedDate; }
  52. set { formattedDate = value; }
  53. }
  54. }
  55. public class MessageContractTester : IMessageContractTesterContract
  56. {
  57. public TestMessage FormatDate (TestMessage testMessage)
  58. {
  59. TestMessage r = new TestMessage (testMessage);
  60. r.FormattedDate = r.Date.ToString (r.FormatString);
  61. return r;
  62. }
  63. }
  64. }