在默认类构造函数或BeginProcessing中初始化?

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?
    }

}
1个回答

4

这取决于您的初始化是否需要初始化cmdlet的参数。如果您只是像分配string.Empty或全面默认值之类的内容,可以在构造函数中完成。但是,如果您要执行以下操作

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

您需要在 BeginProcessing 中完成此操作,因为在生命周期中的这个时间点上,您可以确保参数已绑定到cmdlet成员。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接