// 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)
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;
}
}
}