Merge pull request #112 from skolima/master
[mono.git] / mcs / class / Microsoft.Build / Microsoft.Build.Construction / ProjectTaskElement.cs
index 5862d32a4d5b37113a3f328d7ffb6bc3e3cb124b..00e0654526206a930df28bc04c21bfb5fc2fed59 100644 (file)
@@ -30,6 +30,7 @@ using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Xml;
+using Microsoft.Build.Exceptions;
 using Microsoft.Build.Internal;
 
 namespace Microsoft.Build.Construction
@@ -47,8 +48,13 @@ namespace Microsoft.Build.Construction
                 {
                         ContainingProject = containingProject;
                 }
-                public string ContinueOnError { get; set; }
-                public string Name { get; private set; }
+                string continueOnError;
+                public string ContinueOnError {
+                        get { return continueOnError ?? String.Empty; }
+                        set { continueOnError = value; }
+                }
+                string name;
+                public string Name { get { return name ?? String.Empty; } private set { name = value; } }
                 public ICollection<ProjectOutputElement> Outputs {
                         get { return new CollectionFromEnumerable<ProjectOutputElement> (
                                 new FilteredEnumerable<ProjectOutputElement> (AllChildren)); }
@@ -111,16 +117,13 @@ namespace Microsoft.Build.Construction
                                 AppendChild (output);
                                 return output;
                         default:
-                                throw new NotImplementedException (string.Format (
+                                throw new InvalidProjectFileException (string.Format (
                                         "Child \"{0}\" is not a known node type.", name));
                         }
                 }
                 internal override void LoadAttribute (string name, string value)
                 {
                         switch (name) {
-                        case "Name":
-                                Name = value;
-                                break;
                         case "ContinueOnError":
                                 ContinueOnError = value;
                                 break;
@@ -139,7 +142,6 @@ namespace Microsoft.Build.Construction
                 }
                 internal override void SaveValue (XmlWriter writer)
                 {
-                        SaveAttribute (writer, "Name", Name);
                         SaveAttribute (writer, "ContinueOnError", ContinueOnError);
                         foreach (var parameter in parameters) {
                                 SaveAttribute (writer, parameter.Key, parameter.Value);