我正在用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?
}
}
答案 0 :(得分:3)
这取决于;您的初始化是否需要初始化cmdlet的参数?如果您只是执行分配string.Empty
或全能默认值的操作,则可以在构造函数中执行此操作。但是,如果你要做像
this.s = "Value: " + this.whatever;
您需要在BeginProcessing
中执行此操作,因为生命周期中的时间,您可以保证将参数绑定到cmdlet的成员。