本文介绍了Visual Studio:用于开发的add-hoc自定义代码生成的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述




我的应用程序中的
(.net MVC,c#)即时通讯使用我的某个模块的公共方法的固定结构。



当我向这个模块添加一个新的公共方法时,我需要添加以下代码:



1)代码段在现有文件中,例如:





in my application (.net MVC, c#) im using a fixed structure for public methods of one of my modules.

When im adding a new public method to this module i need to add the following code:

1) a code segment in an existing file, something like:

[...attribute...]
[...attribute...]
public ... {Method-Name}(...)
{
   ...init code...
}





2)定义两个类的两个代码文件。这些类的名称是使用附加了一些后缀的方法名称({Method-Name})构建的,例如:





2) two code files defining two classes. The name of these classes is built using the method name ({Method-Name}) appended with some suffix, for example:

using System...;

namespace ...
{
    public class {Method-Name}Model
    {
        public {Method-Name}Model()
        {
        }

        ...common code...
    }
}







我需要生成一次此代码(对于每种新方法) - 之后我编辑文件并添加特定的详细信息&逻辑。



目前我只是复制现有方法的代码并进行修改。



我尝试使用,但是我找不到如何:



- 手动运行T4脚本?

- 运行带参数的T4脚本?

- 一个接一个地运行几个T4脚本?

- 在现有代码中运行T4脚本文件在该文件中添加代码片段模板?



例如以下T4模板从上面生成类:






I need to generate this code once (for each new method) - after which i edit the files and add the specific details & logic.

Currently i just copy the code of existing methods and modify it.

I've tried doing the above using T4 Text Templates, however i could not find how to:

- run manually T4 scripts?
- run T4 scripts with parameters?
- run several T4 scripts one-after another?
- run a T4 script within an existing code file to add a code fragment template inside that file?

For example the following T4 template to generate the class from above:

<#@ template language="C#" #>
<#@ parameter type="System.String" name="MethodName" #>
<#@ output extension=".cs" #>

using System ...

namespace ...
{
    public class <#= MethodName #>Model : ...
    {
        public <#= MethodName #>Model()
        {
        }

        ...common code...
    } 
}

推荐答案


这篇关于Visual Studio:用于开发的add-hoc自定义代码生成的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-24 23:12