在Powershell cmdlet中公开一组相关函数时,是否可以共享属性名称和摘要帮助以在程序集中跨cmdlet规范化这些函数?
我知道这可以通过派生类来完成,但是当有多个具有不同属性的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 …Run Code Online (Sandbox Code Playgroud) 我们有一个很大的代码库,已成功使用boost :: signals多年.我们最近提升了v1.54,并决定由于boost :: signals被弃用,我们将切换到boost :: signals2.
我们看到的问题是编译时间是可怕的.例如,一个小的.cpp文件现在需要花费20多秒才能获得4秒.
同样,我们过去需要大约10分钟才能生成的库(大型)之一需要长达一个小时.我已经四处搜索了有关如何通过预编译的头文件,宏等来改进它的文档,但还没有找到任何可以大大改善这种情况的东西.
在procmon中查看cl.exe会在boost :: signals2和mpl库中显示大量的IO.
我们不需要信号2提供的线程安全性,此时我们接近在"升级"上拉动插头并恢复信号.在我们放弃之前,有没有人对此有任何建议或经验?
我们正在使用VS2012和大量的RAM /磁盘/等.