我的cmdlet正在尝试从管道中获取值,但在运行时,我收到错误消息:
无法处理管道输入,因为无法重试参数“Legalentity”的默认值。获得'Legalentity'的例外:表达必须是可读的 参数名称:表达式
我不知道是什么导致了这个错误。
感谢您的帮助!代码在下面..
[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);
}
}
答案 0 :(得分:0)
确保您的Parameter
同时包含get
和set
之三应解决问题以及类似类型的任何"Expression must be writeable"
错误。
public List<Object> Legalentity
{
set { _legalentities = value; }
get { return _legalentities; }
}