像Windows Forms一样使用.designer.cs生成代码

时间:2012-06-22 07:43:17

标签: c# visual-studio visual-studio-2005 c#-2.0

我认为我有一个大问题。

我有两个项目解决方案。

首先是UI项目。 算法服务中的第二个。

我需要在编译之前在UI部分生成(或覆盖)一个类(fileUI.cs)。

主要的想法是,当你在de Services部分(fileSA.cs)中编辑一个类,然后在UI部分(fileUI.cs)中的类更新之前,使用Services部件类信息更新构建解决方案( fileSA.cs),然后编译。

我认为它与VS对每种形式的.designer.cs(用户控件......)

的作用相似

我不知道它是否可能......

非常感谢

3 个答案:

答案 0 :(得分:3)

你需要T4模板

  

Code Generation and T4 Text Templates

答案 1 :(得分:3)

Visual Studio有一种称为单文件生成器 / 自定义工具的机制,它完全针对此用例:生成文件(fileUI.cs在您的案例中)当另一个文件发生变化时(fileSA.cs)。

请参阅MSDN文章Implementing Single-File Generators以了解如何编写此类自定义文件生成器。

P.S。:虽然这将是适当的机制,但我认为它不会贯穿项目边界。

答案 2 :(得分:1)

您可以在项目中添加自定义msbuild目标(右键单击项目 - >编辑项目文件)。有关msbuild目标的更多信息,请参阅msdn。您可以将自定义任务作为此目标的一部分运行。生成代码的方法是使用T4模板。有关运行t4模板的更多信息here,作为构建过程的一部分。 Oleg Sych对T4有很多详细的解释,并且对这个问题有一定的权威性,因此他的site是一个很好的读物。