2009-08-14 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Fri, 14 Aug 2009 12:34:15 +0000 (12:34 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Fri, 14 Aug 2009 12:34:15 +0000 (12:34 -0000)
* MessageHeaders.cs : allow null header value on each specific setter.

svn path=/trunk/mcs/; revision=139910

mcs/class/System.ServiceModel/System.ServiceModel.Channels/ChangeLog
mcs/class/System.ServiceModel/System.ServiceModel.Channels/MessageHeaders.cs

index 6a59e4ddfe7a1b435793b810ac118211b9a5bf77..e8bd1366bf751be3b21d4b8bfd4264af026f1011 100755 (executable)
@@ -1,3 +1,7 @@
+2009-08-14  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * MessageHeaders.cs : allow null header value on each specific setter.
+
 2009-08-14  Atsushi Enomoto  <atsushi@ximian.com>
 
        * DuplexChannelBase.cs, TcpDuplexSessionChannel.cs :
index 34dde7b58c1befc97de1f32ac7d6df3271b8cfc5..bb2a257a936ca09b58b7b5c715f7c43e26d8d370 100644 (file)
@@ -318,7 +318,8 @@ namespace System.ServiceModel.Channels
                        }
                        set {
                                RemoveAll ("Action", version.Addressing.Namespace);
-                               Add (MessageHeader.CreateHeader ("Action", version.Addressing.Namespace, value, true));
+                               if (value != null)
+                                       Add (MessageHeader.CreateHeader ("Action", version.Addressing.Namespace, value, true));
                        }
                }
 
@@ -337,10 +338,8 @@ namespace System.ServiceModel.Channels
                                        throw new InvalidOperationException ("WS-Addressing header is not allowed for AddressingVersion.None");
 
                                RemoveAll ("FaultTo", Constants.WSA1);
-                               Add (MessageHeader.CreateHeader (
-                                               "FaultTo", 
-                                               Constants.WSA1,
-                                               EndpointAddress10.FromEndpointAddress (value)));
+                               if (value != null)
+                                       Add (MessageHeader.CreateHeader ("FaultTo", Constants.WSA1, EndpointAddress10.FromEndpointAddress (value)));
                        }
                }
 
@@ -354,10 +353,8 @@ namespace System.ServiceModel.Channels
                                        throw new InvalidOperationException ("WS-Addressing header is not allowed for AddressingVersion.None");
 
                                RemoveAll ("From", Constants.WSA1);
-                               Add (MessageHeader.CreateHeader (
-                                               "From", 
-                                               Constants.WSA1,
-                                               EndpointAddress10.FromEndpointAddress (value)));
+                               if (value != null)
+                                       Add (MessageHeader.CreateHeader ("From", Constants.WSA1, EndpointAddress10.FromEndpointAddress (value)));
                        }
                }
 #endif
@@ -376,10 +373,8 @@ namespace System.ServiceModel.Channels
                                        throw new InvalidOperationException ("WS-Addressing header is not allowed for AddressingVersion.None");
 
                                RemoveAll ("MessageID", Constants.WSA1);
-                               Add (MessageHeader.CreateHeader (
-                                               "MessageID", 
-                                               Constants.WSA1,
-                                               value.ToString ()));
+                               if (value != null)
+                                       Add (MessageHeader.CreateHeader ("MessageID", Constants.WSA1, value.ToString ()));
                        }
                }
 
@@ -395,10 +390,8 @@ namespace System.ServiceModel.Channels
                                        throw new InvalidOperationException ("WS-Addressing header is not allowed for AddressingVersion.None");
 
                                RemoveAll ("MessageID", Constants.WSA1);
-                               Add (MessageHeader.CreateHeader (
-                                               "RelatesTo", 
-                                               Constants.WSA1,
-                                               value.ToString ()));
+                               if (value != null)
+                                       Add (MessageHeader.CreateHeader ("RelatesTo", Constants.WSA1, value.ToString ()));
                        }
 
                }
@@ -414,10 +407,8 @@ namespace System.ServiceModel.Channels
                                        throw new InvalidOperationException ("WS-Addressing header is not allowed for AddressingVersion.None");
 
                                RemoveAll ("ReplyTo", Constants.WSA1);
-                               Add (MessageHeader.CreateHeader (
-                                               "ReplyTo", 
-                                               Constants.WSA1,
-                                               EndpointAddress10.FromEndpointAddress (value)));
+                               if (value != null)
+                                       Add (MessageHeader.CreateHeader ("ReplyTo", Constants.WSA1, EndpointAddress10.FromEndpointAddress (value)));
                        }
                }
 #endif
@@ -430,11 +421,8 @@ namespace System.ServiceModel.Channels
                        }
                        set { 
                                RemoveAll ("To", version.Addressing.Namespace);
-                               Add (MessageHeader.CreateHeader (
-                                               "To", 
-                                               version.Addressing.Namespace, 
-                                               value.AbsoluteUri,
-                                               true));
+                               if (value != null)
+                                       Add (MessageHeader.CreateHeader ("To", version.Addressing.Namespace, value.AbsoluteUri, true));
                        }
                }