* ChannelFactoryBase.cs, RequestChannelBase.cs : support
MessageVersion in GetProperty<T>() for many transport channels.
svn path=/trunk/mcs/; revision=157367
+2010-05-14 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ChannelFactoryBase.cs, RequestChannelBase.cs : support
+ MessageVersion in GetProperty<T>() for many transport channels.
+
2010-05-14 Atsushi Enomoto <atsushi@ximian.com>
* HttpChannelFactory.cs
namespace System.ServiceModel.Channels
{
- internal abstract class TransportChannelFactoryBase<TChannel> : ChannelFactoryBase<TChannel>
+ internal interface IHasMessageEncoder
+ {
+ MessageEncoder MessageEncoder { get; }
+ }
+
+ internal abstract class TransportChannelFactoryBase<TChannel> : ChannelFactoryBase<TChannel>, IHasMessageEncoder
{
protected TransportChannelFactoryBase (TransportBindingElement source, BindingContext ctx)
{
public override T GetProperty<T> ()
{
- Console.Error.WriteLine (typeof (T));
+ if (typeof (T) == typeof (MessageVersion) && channel_factory is IHasMessageEncoder)
+ return (T) (object) ((IHasMessageEncoder) channel_factory).MessageEncoder.MessageVersion;
if (typeof (T) == typeof (IChannelFactory))
return (T) (object) channel_factory;
return base.GetProperty<T> ();