Как я могу получить символы '*' вместо любой строки в InArgument‹string›

У меня есть свойство «Текст», в котором хранится любой текст или пароль. Когда свойство содержит пароль, мне нужно отобразить символы «*» вместо пароля. У меня есть представление, в котором есть поле ExpressionTextbox, связанное с этим свойством. Все хорошо отображается, но при выполнении получаю ошибку: Невозможно использовать аргумент типа 'System.String'. Убедитесь, что он объявлен в действии

Вот код:

private InArgument<string> _text; 

public InArgument<string> Text
{
    get
    {
        if (Model.HideValue)
        {
            return new string('*', Model.Text.Length);
        }

        return _text;
    }
    set => _text = value;
}

....

protected override void Execute(NativeActivityContext context)
{
    Model.PopulateText = PopulateText.Get(context); // here I get an error

    base.Execute(context);
}

Итак, как я могу получить символы «*» вместо текста, когда тип значения — пароль?


person Fannur    schedule 17.04.2020    source источник
comment
Неявный оператор InArgument‹T› ожидает постоянного TI think docs.microsoft.com/en-us/dotnet/api/ . Поскольку также не рекомендуется возвращать маску, которая выдает количество символов в пароле, почему бы не попробовать с константным числом символов *, например return "********"   -  person Oguz Ozgul    schedule 17.04.2020
comment
Огуз Озгуль, пробовал, выдает ту же ошибку   -  person Fannur    schedule 20.04.2020
comment
Эй, нашел это, которое, как говорят, относится как к InArgument, так и к OutArgument. stackoverflow.com/questions/11551971/   -  person Oguz Ozgul    schedule 20.04.2020