4

我正在用 C# 编写一个 cmdlet。为了让我的 cmdlet 正常工作,我需要初始化许多东西。

我是通过覆盖 BeginProcessing 还是在默认类构造函数中进行初始化?

精简示例:

[Cmdlet(VerbsCommon.Set, "MyNoun")]
class MyCmdlet : PSCmdlet
{
    string s;

    [Parameter(Position = 0, Mandatory = true)]
    public string whatever;

    public MyCmdlet() 
    {
        //initialize s here?
    }

    public override void BeginProcessing()
    {
        //or initialize s here?
    }

}
4

1 回答 1

4

那要看; 您的初始化是否需要初始化 cmdlet 的参数?如果您只是在执行诸如分配string.Empty或全面默认值之类的操作,则可以在构造函数中执行此操作。但是如果你要做类似的事情

this.s = "Value: " + this.whatever;

您需要在 中执行此操作BeginProcessing,因为在生命周期中的那个时间,您可以保证将参数绑定到 cmdlet 的成员。

于 2013-06-06T19:18:16.523 回答