При предоставлении набора связанных функций в командлетах Powershell возможно ли совместно использовать имена свойств и сводную справку, чтобы нормализовать их для командлетов в сборке?
Я знаю, что это можно сделать с помощью производных классов, но это решение в лучшем случае неудобно, когда есть несколько общих командлетов с разными свойствами.
Вот чрезвычайно простой пример. Я хотел бы поделиться свойством «Имя» и всеми связанными комментариями, чтобы они были одинаковыми для N командлетов, которые мы производим, но я не могу придумать хороший способ сделать это в С#. В идеале любое совместное использование должно позволять указывать атрибуты параметров, такие как «Обязательный» или «Позиция».
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
}
}
}