2009-06-03 9 views
0

Comment savoir si une valeur a été transmise à une propriété qui ne possède pas l'indicateur [Required].Balise requise dans les tâches MSbuild personnalisées

Quelle sera la valeur d'une chaîne qui n'est pas requise et qui n'a pas été transmise? Si c'est une chaîne vide alors comment savez-vous la différence d'une chaîne vide envoyée par l'appelant?

Répondre

1

Si vous avez besoin de savoir si une valeur a été définie ou non vous pouvez alors faire un drapeau dans votre propriété par exemple

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

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

... PLUS ICI

} 

vous pouvez donc juste vérifiez l'indicateur mNameSet pour voir si la propriété a été définie ou non. Sayed Ibrahim Hashimi

Mon livre: Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

0

Vous ne pouvez pas faire la différence. Les deux seront null si la tâche ne définit pas une valeur par défaut dans le constructeur de la tâche.

Je ne sais pas si cela devrait faire la différence pour la tâche personnalisée. Si un paramètre est nul ou vide --- String.IsNullOrEmpty() --- alors la tâche devrait se ramifier dans la logique par défaut pour cette valeur particulière.

Questions connexes