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