我正在用 c# 编写 cmdlet,我想知道是否可以在 c# 中检索带有 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...
}
然后我称之为 cmdlet:Get-Data -DataSource IMAP
我如何尝试在 GetDataCmdlet 类中添加日志记录功能来记录被调用的完整 cmdlet。我知道我可以通过以下方式获取命令名称: string name = this.GetType().GetAttributeValue((CmdletAttribute cmd) => cmd.VerbName + "-" + cmd.NounName);
但是参数和它们的值呢?我可以做一个硬编码的事情来获取数据值,但是当使用参数集和可选参数时它会更加复杂。是否有某种方法可以自动检索这些信息?
谢谢!