如何编写类字段&在VS2008或VS2010中构建项目后,函数和不同的输入值到文件

本文关键字:函数 文件 输入 项目 字段 何编写 VS2008 构建 VS2010 | 更新日期: 2023-09-27 18:07:11

我正在考虑简化应用程序输入文件的创建

ie。我有一个自定义类

public class CustomClass
{
   public string field1;
   public string field2;
   public string field3;
   ...
   public static void FunctionA() {...}
}

我想能够写这个类的成员(字段/属性/函数)到一个文件后,我做一个构建。此内容将采用html或X标记形式。

我还希望能够让它根据当前现有的字段向同一文件写入不同的输入。我一直在寻找自定义属性来做到这一点,但我不知道这是否可行,甚至是正确的方法。

我的自定义属性签名看起来像

    [SampleAttribute("C:'tmp'writeToThisFile.txt"]
    [SampleFields("A", "B", "C", "A1"]
    [SampleFields("X", "Y", "Z", "A2"]
    public class CustomClass
    ..

文件C:'tmp'writeToThisFile.txt将包含如下内容:

    field1 | field2 | field3 | FunctionA
    A      | B      | C      | A1
    X      | Y      | Z      | A2

我不想要编写/维护另一个应用程序,扫描代码并写入文件(构建事件后)。

我正在寻找现有的c#或Visual studio的行为,可能促进这种方法。

如何编写类字段&在VS2008或VS2010中构建项目后,函数和不同的输入值到文件

我认为在您的情况下最好是创建一个简单的插件,它将递归地遍历解决方案并检查每个文件中的代码工件。

你需要做的是:1. 创建一个简单的插件(新建项目=>其他项目类型=>扩展性=> Visual Studio Add-In)。

  1. 附加到OnBuildBegin并开始迭代DTE. solution . projects(在创建项目之后,您将立即拥有DTE的实例)。

  2. 每个项目项(如果它是一个代码文件)将有一个代码模型层次结构,其中包含该文件中的命名空间,每个命名空间包含类,每个类包含方法,属性,字段等。你基本上是在文件中下钻,找到你需要的所有元素,然后用你想要的信息构建一个字符串生成器。

我会说写一个代码来执行你想要的操作,并将其编译成EXE文件。这个EXE,比方说,使用反射来找到它需要的值,并生成所需的输出,比方说一个报告。

转到您的主项目属性,并在PostbuildEvent字段中插入DOS脚本,调用先前创建的EXE。

所以每次你的主项目编译,脚本将运行,所以你的EXE将运行。