Merge pull request #1304 from slluis/mac-proxy-autoconfig
[mono.git] / mcs / class / Microsoft.Build / Microsoft.Build.Construction / ProjectMetadataElement.cs
index db4ec9fa3610f8ac5b0e42ed71839efb4be59ab0..797a04d04d425158adf82570694fe4b938fd1ff4 100644 (file)
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
+using System;
 using System.Collections.Generic;
 using System.Xml;
 
 namespace Microsoft.Build.Construction
 {
+        [System.Diagnostics.DebuggerDisplayAttribute ("{Name} Value={Value} Condition={Condition}")]
         public class ProjectMetadataElement : ProjectElement
         {
                 internal ProjectMetadataElement (string name, ProjectRootElement containingProject)
@@ -38,18 +40,24 @@ namespace Microsoft.Build.Construction
                         Name = name;
                         ContainingProject = containingProject;
                 }
-
-                public string Name { get; set; }
-                public string Value { get; set; }
+                string name;
+                public string Name { get { return name ?? String.Empty; } set { name = value; } }
+                string internalValue;
+                public string Value { get { return internalValue ?? String.Empty; } set { internalValue = value; } }
                 internal override string XmlName {
                         get { return Name; }
                 }
-
-                internal override void Save (XmlWriter writer)
+                internal override void SaveValue (XmlWriter writer)
+                {
+                        base.SaveValue (writer);
+                        if (!string.IsNullOrWhiteSpace (Value))
+                                writer.WriteValue (Value);
+                }
+                internal override void LoadValue (XmlReader reader)
                 {
-                        writer.WriteStartElement (XmlName);
-                        writer.WriteValue (Value);
-                        writer.WriteEndElement ();
+                        while (reader.Read () & reader.NodeType != XmlNodeType.Text)
+                                ;
+                        Value = reader.Value;
                 }
         }
 }