Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为VisualStudio2010编写代码生成插件的教程_C#_Visual Studio 2010_Plugins_Code Generation - Fatal编程技术网

C# 为VisualStudio2010编写代码生成插件的教程

C# 为VisualStudio2010编写代码生成插件的教程,c#,visual-studio-2010,plugins,code-generation,C#,Visual Studio 2010,Plugins,Code Generation,我想在VisualStudio2010中添加一个编辑器,它应该类似于实体框架的编辑器,也就是说,您可以使用一个可视化设计器将自己的配置保存到自己的文件中,然后从中生成代码 因此,这涉及到两个方面,一个是特定文件扩展名的可视化表示,另一个是代码生成(或者应该在编辑文件时生成代码,还是仅在构建时生成代码?) 我曾经浏览过一些网页,但是没有找到关于如何做这些特定事情的任何资源(特别是代码生成部分),如果能用这些资源指出正确的方向,我将不胜感激。您检查过这些链接吗 对于代码生成,我建议您查看一下 我

我想在VisualStudio2010中添加一个编辑器,它应该类似于实体框架的编辑器,也就是说,您可以使用一个可视化设计器将自己的配置保存到自己的文件中,然后从中生成代码

因此,这涉及到两个方面,一个是特定文件扩展名的可视化表示,另一个是代码生成(或者应该在编辑文件时生成代码,还是仅在构建时生成代码?)


我曾经浏览过一些网页,但是没有找到关于如何做这些特定事情的任何资源(特别是代码生成部分),如果能用这些资源指出正确的方向,我将不胜感激。

您检查过这些链接吗


  • 对于代码生成,我建议您查看一下


    我对VS插件开发一无所知,但我认为此页面会很有帮助(如果您以前没有看到过)

    Microsoft的可视化和建模SDK-特定于域的语言:

    从网站上引用:

    使用VisualStudio可视化和建模SDK(VMSDK),您可以创建功能强大的基于模型的开发工具,并将其集成到VisualStudio中。例如,UML工具是使用VMSDK创建的。同样,可以创建一个或多个模型定义,并将其集成到一组工具中

    VMSDK的核心是定义一个模型,您可以创建该模型来表示业务领域中的概念。您可以使用各种工具围绕模型,例如图表视图、生成代码和其他工件的能力、用于转换模型的命令以及在Visual Studio中与代码和其他对象交互的能力。在开发模型时,可以将其与其他模型和工具结合起来,形成以开发为中心的强大工具集

    VMSDK允许您以领域特定语言(DSL)的形式快速开发模型。首先,使用专门的编辑器定义模式或抽象语法以及图形符号。根据此定义,VMSDK生成:

    A model implementation with a strongly-typed API that runs in a transaction-based store.
    
    A tree-based explorer.
    
    A graphical editor in which users can view the model or parts of it that you define.
    
    Serialization methods that save your models in readable XML.
    
    Facilities for generating program code and other artifacts using text templating.
    
    您可以自定义和扩展所有这些功能。您的扩展是以这样一种方式集成的,即您仍然可以更新DSL定义并重新生成功能,而不会丢失扩展


    我对VS插件开发一无所知
    ,那你为什么要回答呢?我的答案不仅仅是关于插件)我们专门为这个领域设计的特定框架,投票反对的理由是什么?它看起来很有希望,我只是看看它是否符合我的目的。+1关于你的答案,我不明白到底为什么有人投你反对票。