我将在C#中编写cmdlets,并想知道是否可以在cmdlet类中检索具有名称、参数和值的命令。例如,我有一个cmdlet:
[Cmdlet(VerbsCommon.Get, "Data")]
public class GetDataCmdlet : Cmdlet
{
[Parameter(Position = 0, Mandatory = true)]
public string DataSource ...
[Parameter(Position = 1, Mandatory = false)]
public string Login...
}
然后我调用这个命令:
Get-Data -DataSource IMAP我尝试在GetDataCmdlet类中添加日志记录功能,以记录被调用的完整命令。我知道可以通过以下方式获取命令名称: string name = this.GetType().GetAttributeValue((CmdletAttribute cmd) => cmd.VerbName + "-" + cmd.NounName);
但是参数和它们的值怎么办?我可以硬编码来获取数据值,但当使用参数集和可选参数时,这将更加复杂。有没有自动检索这些信息的方法?
谢谢!