Обязательный тег в пользовательских задачах MSbuild - PullRequest
0 голосов
/ 03 июня 2009

Как узнать, было ли передано значение для свойства, у которого нет флага [Required].

Каким будет значение строки, которая не обязательна и не была передана? Если это пустая строка, то как узнать разницу с пустой строкой, отправленной вызывающей стороной?

Ответы [ 2 ]

1 голос
/ 04 июля 2009

Если вам нужно знать, было ли установлено значение или нет, вы можете сделать флаг в вашем свойстве, например,

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

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

... БОЛЬШЕ ЗДЕСЬ

}

Так что вы можете просто проверить флаг mNameSet, чтобы увидеть, было ли свойство установлено или нет. Сказал Ибрагим Хашими

Моя книга: Внутри Microsoft Build Engine: Использование MSBuild и Team Foundation Build

0 голосов
/ 05 июня 2009

Вы не можете отличить. Оба будут нулевыми, если задача не устанавливает значение по умолчанию в конструкторе задач.

Я не знаю, должно ли это иметь значение для пользовательской задачи. Если параметр является пустым или пустым --- String.IsNullOrEmpty() ---, тогда задача должна перейти в логику по умолчанию для этого конкретного значения.

...