Author: atsushi
Date: 2008-02-05 12:44:31 -0500 (Tue, 05 Feb 2008)
New Revision: 94910
Added:
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncoder.cs
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncoderFactory.cs
Modified:
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/ChangeLog
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebBodyFormatMessageProperty.cs
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncodingBindingElement.cs
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Web.dll.sources
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/ChangeLog
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/WebBodyFormatMessagePropertyTest.cs
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/WebMessageEncodingBindingElementTest.cs
Log:
2008-02-05 Atsushi Enomoto <[EMAIL PROTECTED]>
* WebMessageEncodingBindingElement.cs :
implement CreateMessageEncoderFactory().
* WebMessageEncoderFactory.cs, WebMessageEncoder.cs : implementation.
* WebBodyFormatMessageProperty.cs : ToString() is more informative.
* WebMessageEncodingBindingElementTest.cs : added MessageEncoder test.
* WebBodyFormatMessagePropertyTest.cs : fixed ToString() test.
Modified:
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/ChangeLog
===================================================================
---
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/ChangeLog
2008-02-05 17:35:06 UTC (rev 94909)
+++
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/ChangeLog
2008-02-05 17:44:31 UTC (rev 94910)
@@ -1,5 +1,12 @@
2008-02-05 Atsushi Enomoto <[EMAIL PROTECTED]>
+ * WebMessageEncodingBindingElement.cs :
+ implement CreateMessageEncoderFactory().
+ * WebMessageEncoderFactory.cs, WebMessageEncoder.cs : implementation.
+ * WebBodyFormatMessageProperty.cs : ToString() is more informative.
+
+2008-02-05 Atsushi Enomoto <[EMAIL PROTECTED]>
+
* WebBodyFormatMessageProperty.cs, WebContentTypeMapper.cs,
WebContentFormat.cs, WebMessageEncodingBindingElement.cs :
new files.
Modified:
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebBodyFormatMessageProperty.cs
===================================================================
---
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebBodyFormatMessageProperty.cs
2008-02-05 17:35:06 UTC (rev 94909)
+++
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebBodyFormatMessageProperty.cs
2008-02-05 17:44:31 UTC (rev 94910)
@@ -24,7 +24,7 @@
public override string ToString ()
{
- return format.ToString ();
+ return String.Concat (Name, ": WebContentFormat=",
format.ToString ());
}
}
}
Added:
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncoder.cs
===================================================================
---
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncoder.cs
2008-02-05 17:35:06 UTC (rev 94909)
+++
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncoder.cs
2008-02-05 17:44:31 UTC (rev 94910)
@@ -0,0 +1,50 @@
+using System;
+using System.IO;
+using System.ServiceModel;
+
+namespace System.ServiceModel.Channels
+{
+ internal class WebMessageEncoder : MessageEncoder
+ {
+ WebMessageEncodingBindingElement source;
+
+ public WebMessageEncoder (WebMessageEncodingBindingElement
source)
+ {
+ this.source = source;
+ }
+
+ public override string ContentType {
+ get { return MediaType + "; charset=" +
source.WriteEncoding.HeaderName; }
+ }
+
+ // FIXME: find out how it can be customized.
+ public override string MediaType {
+ get { return "application/xml"; }
+ }
+
+ public override MessageVersion MessageVersion {
+ get { return MessageVersion.None; }
+ }
+
+ public override Message ReadMessage (ArraySegment<byte> buffer,
BufferManager bufferManager, string contentType)
+ {
+ throw new NotImplementedException ();
+ }
+
+ public override Message ReadMessage (Stream stream, int
maxSizeOfHeaders, string contentType)
+ {
+ throw new NotImplementedException ();
+ }
+
+ public override void WriteMessage (Message message, Stream
stream)
+ {
+ throw new NotImplementedException ();
+ }
+
+ public override ArraySegment<byte> WriteMessage (Message
message, int maxMessageSize, BufferManager bufferManager,
+ int
messageOffset)
+ {
+ throw new NotImplementedException ();
+ }
+ }
+}
Property changes on:
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncoder.cs
___________________________________________________________________
Name: svn:eol-style
+ native
Added:
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncoderFactory.cs
===================================================================
---
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncoderFactory.cs
2008-02-05 17:35:06 UTC (rev 94909)
+++
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncoderFactory.cs
2008-02-05 17:44:31 UTC (rev 94910)
@@ -0,0 +1,23 @@
+using System;
+using System.ServiceModel;
+
+namespace System.ServiceModel.Channels
+{
+ internal class WebMessageEncoderFactory : MessageEncoderFactory
+ {
+ MessageEncoder encoder;
+
+ public WebMessageEncoderFactory
(WebMessageEncodingBindingElement source)
+ {
+ encoder = new WebMessageEncoder (source);
+ }
+
+ public override MessageEncoder Encoder {
+ get { return encoder; }
+ }
+
+ public override MessageVersion MessageVersion {
+ get { return MessageVersion.None; }
+ }
+ }
+}
Property changes on:
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncoderFactory.cs
___________________________________________________________________
Name: svn:eol-style
+ native
Modified:
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncodingBindingElement.cs
===================================================================
---
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncodingBindingElement.cs
2008-02-05 17:35:06 UTC (rev 94909)
+++
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncodingBindingElement.cs
2008-02-05 17:44:31 UTC (rev 94910)
@@ -102,7 +102,7 @@
[MonoTODO]
public override MessageEncoderFactory
CreateMessageEncoderFactory ()
{
- throw new NotImplementedException ();
+ return new WebMessageEncoderFactory (this);
}
[MonoTODO]
Modified:
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Web.dll.sources
===================================================================
---
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Web.dll.sources
2008-02-05 17:35:06 UTC (rev 94909)
+++
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Web.dll.sources
2008-02-05 17:44:31 UTC (rev 94910)
@@ -14,6 +14,8 @@
System.ServiceModel.Channels/WebBodyFormatMessageProperty.cs
System.ServiceModel.Channels/WebContentFormat.cs
System.ServiceModel.Channels/WebContentTypeMapper.cs
+System.ServiceModel.Channels/WebMessageEncoder.cs
+System.ServiceModel.Channels/WebMessageEncoderFactory.cs
System.ServiceModel.Channels/WebMessageEncodingBindingElement.cs
System.ServiceModel.Syndication/Atom10FeedFormatter.cs
System.ServiceModel.Syndication/Atom10FeedFormatter_1.cs
Modified:
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/ChangeLog
===================================================================
---
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/ChangeLog
2008-02-05 17:35:06 UTC (rev 94909)
+++
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/ChangeLog
2008-02-05 17:44:31 UTC (rev 94910)
@@ -1,4 +1,9 @@
2008-02-05 Atsushi Enomoto <[EMAIL PROTECTED]>
+ * WebMessageEncodingBindingElementTest.cs : added MessageEncoder test.
+ * WebBodyFormatMessagePropertyTest.cs : fixed ToString() test.
+
+2008-02-05 Atsushi Enomoto <[EMAIL PROTECTED]>
+
* WebMessageEncodingBindingElementTest.cs,
WebBodyFormatMessagePropertyTest.cs : new test files.
Modified:
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/WebBodyFormatMessagePropertyTest.cs
===================================================================
---
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/WebBodyFormatMessagePropertyTest.cs
2008-02-05 17:35:06 UTC (rev 94909)
+++
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/WebBodyFormatMessagePropertyTest.cs
2008-02-05 17:44:31 UTC (rev 94910)
@@ -15,7 +15,7 @@
WebBodyFormatMessageProperty p = new
WebBodyFormatMessageProperty (WebContentFormat.Json);
Assert.AreEqual ("WebBodyFormatMessageProperty",
WebBodyFormatMessageProperty.Name, "#1");
Assert.AreEqual (WebContentFormat.Json, p.Format, "#2");
- Assert.AreEqual ("Json", p.ToString (), "#3");
+ Assert.AreEqual ("WebBodyFormatMessageProperty:
WebContentFormat=Json", p.ToString (), "#3");
}
}
}
Modified:
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/WebMessageEncodingBindingElementTest.cs
===================================================================
---
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/WebMessageEncodingBindingElementTest.cs
2008-02-05 17:35:06 UTC (rev 94909)
+++
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/WebMessageEncodingBindingElementTest.cs
2008-02-05 17:44:31 UTC (rev 94910)
@@ -22,5 +22,14 @@
WebMessageEncodingBindingElement be = new
WebMessageEncodingBindingElement ();
Assert.AreEqual (Encoding.UTF8, be.WriteEncoding, "#1");
}
+
+ [Test]
+ public void MessageEncoder ()
+ {
+ WebMessageEncodingBindingElement m = new
WebMessageEncodingBindingElement ();
+ MessageEncoder e = m.CreateMessageEncoderFactory
().Encoder;
+ Assert.AreEqual ("application/xml", e.MediaType, "#1");
+ Assert.AreEqual ("application/xml; charset=utf-8",
e.ContentType, "#2");
+ }
}
}
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches