using System;
using System.Xml;
+using System.Text;
namespace Microsoft.Build.Construction
{
public class ProjectExtensionsElement : ProjectElement
{
- public string Content { get; set; }
+ internal ProjectExtensionsElement (ProjectRootElement containingProject)
+ {
+ ContainingProject = containingProject;
+ }
+ public override string Condition {
+ get { return null; }
+ set {
+ throw new InvalidOperationException ("Can not set Condition.");
+ }
+ }
+ public string Content {
+ get { return element.InnerXml; }
+ set { element.InnerXml = value; }
+ }
public string this[string name] {
get {
- throw new NotImplementedException ();
+ var child = element[name];
+ return child == null ? string.Empty : child.InnerXml;
+ }
+ set {
+ var child = element[name];
+ if (child == null) {
+ if (string.IsNullOrEmpty (name))
+ return;
+ child = document.CreateElement (name);
+ element.AppendChild (child);
+ }
+ if (string.IsNullOrEmpty (value))
+ element.RemoveChild (child);
+ else
+ child.InnerXml = value;
}
- set { }
}
- internal override string XmlName {
- get {
- throw new NotImplementedException ();
+ internal override void Load (XmlReader reader)
+ {
+ while (reader.Read () && reader.NodeType != XmlNodeType.Element)
+ ;
+ using (XmlReader subReader = reader.ReadSubtree ()) {
+ document = new XmlDocument ();
+ document.Load (subReader);
+ element = document.DocumentElement;
}
}
- internal override void Save (XmlWriter writer)
+ internal override void SaveValue (XmlWriter writer)
{
- throw new NotImplementedException ();
+ element.WriteContentTo (writer);
+ }
+ internal override string XmlName {
+ get { return "ProjectExtensions"; }
}
+ XmlDocument document;
+ XmlElement element;
}
}