Командлет powershell: выражение должно быть читаемым

Мой командлет пытается получить значения из конвейера, но при запуске я получаю сообщение об ошибке:

Ввод конвейера не может быть обработан, так как значение по умолчанию для параметра «Законность» не может быть восстановлено. Исключение при получении «Легальности»: выражение должно быть читаемым. Имя параметра: выражение.

и я понятия не имею, что вызывает эту ошибку..

Спасибо за любую помощь! Код ниже..

[Cmdlet(VerbsCommon.Get, "Deals")]
public partial class GetDealCmdlet : InsightBaseCmdlet
{
    private List<Object> _legalentities = new List<Object>();
    [Parameter(Position = 0, Mandatory = true, ValueFromPipeline = true, ValueFromPipelineByPropertyName = true)]
    public List<Object> Legalentity { set { _legalentities = value; } } 


    protected override void ProcessRecord() {...}
}

и использование:

Search-Deals xxx | Get-Deals 

где search-Deals:

...

protected override void ProcessRecord() 
{
    foreach (PSObject in List<PSObject>)
    {
        ....
        writeObject(PSObject);
    }
}

person jamesdeath123    schedule 02.04.2013    source источник
comment
возможный дубликат командлета говорит, что параметр не может быть получен: выражение должно быть читаемым   -  person Troyen    schedule 17.12.2013


Ответы (1)


Убедившись, что ваш Parameter имеет как getter, так и setter, вы должны решить проблему, а также любые "Expression must be writeable" ошибки подобного типа.

public List<Object> Legalentity 
{ 
    set { _legalentities = value; } 
    get { return _legalentities; }
}
person Haoyang    schedule 11.04.2013