当在Powershell cmdlets中公开一组相关函数时,是否可以共享属性名称和摘要帮助以在程序集中规范这些内容?
我知道可以通过派生类来实现此目的,但是当有多个cmdlet需要共享不同属性时,这种解决方案最多只能算是笨拙。
以下是一个极其简单的示例。我想共享属性“Name”及其所有相关注释,使得它们在我们正在生成的N个cmdlet中保持一致,但我无法想到在c#中实现这个目标的好方法。理想情况下,任何共享都应允许指定参数属性,例如Mandatory或Position。
我知道可以通过派生类来实现此目的,但是当有多个cmdlet需要共享不同属性时,这种解决方案最多只能算是笨拙。
以下是一个极其简单的示例。我想共享属性“Name”及其所有相关注释,使得它们在我们正在生成的N个cmdlet中保持一致,但我无法想到在c#中实现这个目标的好方法。理想情况下,任何共享都应允许指定参数属性,例如Mandatory或Position。
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
}
}
}