Powershell コマンドレットで一連の関連関数を公開する場合、プロパティ名と概要ヘルプを共有して、アセンブリ内のコマンドレット間でこれらを正規化することはできますか?
これは派生クラスで実行できることはわかっていますが、共有するプロパティが異なる複数のコマンドレットがある場合、このソリューションはせいぜい扱いにくいものです。
これは非常に単純な例です。プロパティ 'Name' と関連するすべてのコメントを共有して、作成している N 個のコマンドレットで同じになるようにしたいのですが、C# でこれを行う良い方法が思いつきません。理想的には、任意の共有により、Mandatory や Position などの Parameter 属性を指定できるようになります。
namespace FrozCmdlets
{
using System.Management.Automation;
/// <summary>
/// Adds a new froz to the system.
/// </summary>
[Cmdlet( VerbsCommon.Add, "Froz" )]
public class AddFroz : Cmdlet
{
/// <summary>
/// The name of the froz.
/// For more information on the froz, see froz help manual.
/// </summary>
[Parameter]
public string Name { get; set; }
protected override void ProcessRecord()
{
base.ProcessRecord();
// Add the froz here
}
}
/// <summary>
/// Removes a froz from the system.
/// </summary>
[Cmdlet( VerbsCommon.Remove, "Froz" )]
public class RemoveFroz : Cmdlet
{
/// <summary>
/// The name of the froz.
/// For more information on the froz, see froz help manual.
/// </summary>
[Parameter]
public string Name { get; set; }
protected override void ProcessRecord()
{
base.ProcessRecord();
// Remove the froz here
}
}
}