在自定义VS 2013模板中更改构造函数

时间:2014-03-17 14:25:03

标签: c# templates visual-studio-2013

我正在为我们的"标准操作"创建VS2013 C#项目模板。工作。这些是由第三方调度程序执行的离散可执行文件。它们在该框架中具有共同的功能,我将构建到单独的库中(调度程序的常用引擎,日志记录组件和命令行解析器)。默认情况下,每个项目都有两个类文件:程序执行程序(program.cs)和处理程序,它们将包含业务逻辑。开发人员可以根据需要创建其他类。我希望处理器独立于执行程序,以使其更具可移植性(可能转移到一个新的调度程序,它运行库与可执行文件,将项目转换为表单等)。

执行程序创建对引擎和记录器的引用,因此它可以直接使用这些对象的功能,并将它们传递给处理器。

Engine engine = new Engine();
Logger log = new Logger(engine.ProcessPath, engine.AppName);

Processor proc = new Processor(engine, log);

默认构造函数接受这些引用并将它们分配给本地成员:

private Logger log;
private Engine engine;

public Processor(Engine inEngine, Logger inLog)
{
    log = inLog;
    engine = inEngine;
}

我想要做的是模板化处理器类的命名。我知道我可以通过使用类的默认占位符和编辑vstemplate来实现,所以

class $safeprojectname$Processor

使用'处理器'生成项目名称的类名称。附加,但我找不到重命名构造函数以匹配的方法。这一点的重点是再次提供业务层的可移植性,因此可以移动类而不会丢失业务流程的上下文。

所以,问题是:有没有办法在模板项目中更改构造函数名称?

另外,在我的脑海里,有一种痒痒的感觉,表明有更好的方法可以解决这个问题,但是我无法将手指放在上面。我对其他选择持开放态度。

1 个答案:

答案 0 :(得分:0)

您可以使用相同的方法重命名构造函数,例如

public $safeprojectname$Processor(Engine inEngine, Logger inLog)
{
    log = inLog;
    engine = inEngine;
}