在 Powershell cmdlet 中公开一组相关函数时,是否可以共享属性名称和摘要帮助以在程序集中跨 cmdlet 规范这些函数?
我知道这可以通过派生类来完成,但是当有多个具有不同属性的 cmdlet 要共享时,这个解决方案充其量是尴尬的。
这是一个非常简单的例子。我想共享属性“名称”和所有相关注释,以便它们在我们生成的 N 个 cmdlet 中是相同的,但我想不出在 c# 中执行此操作的好方法。理想情况下,任何共享都将允许指定参数属性,例如强制或位置。
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
}
}
}