2009-06-03 6 views
0

Woher wissen Sie, ob ein Wert für eine Eigenschaft übergeben wurde, die nicht über das Flag [Required] verfügt?Erforderliches Tag in benutzerdefinierten MSbuild-Tasks

Was ist der Wert eines Strings, der nicht benötigt wird und nicht übergeben wurde? Wenn es eine leere Zeichenfolge ist, woher kennen Sie den Unterschied zu einer leeren Zeichenfolge, die vom Aufrufer gesendet wurde?

Antwort

1

Wenn Sie wissen müssen, wenn ein Wert festgelegt wurde oder nicht, dann können Sie einen Flag in Ihrer Eigenschaft zum Beispiel machen

public MyTask : Task 
{ 
    private string mName; 
    private bool mNameSet; 

    public string Name 
    { 
     get{return mName;} 
     set 
     { 
      mName = value; 
      mNameSet = true; 
     } 
    } 

... Mehr hier

} 

So können Sie einfach Überprüfen Sie das mNameSet-Flag, um festzustellen, ob die Eigenschaft festgelegt wurde oder nicht. Sayed Ibrahim Hashimi

My Book: Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

0

Sie können den Unterschied nicht feststellen. Beide sind NULL, wenn die Task im Taskkonstruktor keinen Standardwert festlegt.

Ich weiß nicht, ob es für die benutzerdefinierte Aufgabe einen Unterschied machen sollte. Wenn ein Parameter null oder leer ist --- String.IsNullOrEmpty() ---, sollte die Task in die Standardlogik für diesen bestimmten Wert verzweigen.