我正在创建自己的自定义T4模板,该模板与我的MVC Web应用程序中包含的ADO.NET实体框架模型(.edmx文件)集成.
请简要了解以下两个网址.
使用T4引擎使用基于ADO.NET实体框架模型的主键的Action方法生成MVC Controller类.
基于Controller名称(例如"ProductController"),我想从ADO.NET Entity Framework模型中检索"Product"类的[System.Type]信息.我希望能够以与MVC View T4文件(例如Edit.tt)相同的方式检索System.Type信息,如下所示.
MvcTextTemplateHost mvcHost = (MvcTextTemplateHost) (Host);
Type type = mvcHost.ViewDataType;
Run Code Online (Sandbox Code Playgroud)
我想创建控制器方法代码生成,以通过反射从ADO.NET实体框架类读取主键信息和等
,并
生成基本的CRUD操作和方法签名的编辑,详情,增加操作等...
但是,正如您可以从ASP.NET MVC开发人员快速入门指南中看到的那样,我无法检索Controller T4模板的[System.Type],因为MvcTextTemplateHost类仅公开用于创建MVC视图的ViewDataType属性. …
简单的问题 - 我找到了两种向Visual Studio(2008)添加工具窗口的方法:创建插件或创建包.
(Addin:http://www.codeproject.com/KB/dotnet/vstoolwindow.aspx)
(包:http://msdn.microsoft.com/en-us/library/bb165051.aspx)
什么是"正确的"方式?
我这里有一个奇怪的问题.我使用向导创建了一个简单的插件,用于带有工具窗口的Visual Studio集成包/ VSIX项目.在该窗口中,我想从列表框中进行简单的拖放操作并放在同一窗口中.我在普通的WPF程序中做了同样的事情,但是当我在WS工具窗口中执行此操作时,它是不允许的.我开始拖放操作(由PreviewMouseLeftButtonDown事件启动)并调用DragDrop.DoDragDrop()方法,我立即得到stop-sign-cursor.不允许拖动.
有任何想法吗?安全限制或这些WPF控件托管在ToolWindowPane和旧的Visual Studio IDE COM中的事实的影响我猜...感谢任何帮助!
我正在开始研究COBOL/BASIC IDE(取代我们目前从记事本上略微提升的那个).它将在C#中制作.管理层真的对实现一些Visual Studio类型的功能感兴趣,而一个重要的是代码折叠.我看过MSDN,但我没有看到任何折叠线的好方法(或添加展开/折叠按钮).
我假设文本区域应该是RichTextBox.我在这里偏离轨道吗?我想可以使用某种经过修改的TreeView来完成,但这对我来说似乎有点不对劲.有没有办法做到这一点,我只是失踪了?
我有一个out参数.是否可以将其作为反射转移?你能举几个例子怎么做吗?
我发布了一个名为Duplicate Selection的 Visual Studio 2010 扩展,它主要通过热键调用。不过,它的“编辑”菜单下还有一个菜单项。这一切都很好,但我想更改菜单项的图标。菜单项的图标应该在 .vsct 文件中定义:
<Commands package="guidDupSelectionPkg">
<Groups>
<Group guid="guidDupSelectionCmdSet" id="MyMenuGroup" priority="0x0600">
<Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_EDIT"/>
</Group>
</Groups>
<Buttons>
<Button guid="guidDupSelectionCmdSet" id="cmdidDupSelection" priority="0x0100" type="Button">
<Parent guid="guidDupSelectionCmdSet" id="MyMenuGroup" />
<Icon guid="guidCmdIcon" id="bmpCmdIcon" />
<CommandFlag>DynamicVisibility</CommandFlag>
<CommandFlag>DontCache</CommandFlag>
<CommandFlag>DefaultInvisible</CommandFlag>
<Strings>
<CommandName>cmdidDupSelection</CommandName>
<ButtonText>Duplicate Selection</ButtonText>
</Strings>
</Button>
</Buttons>
<Bitmaps>
<!--<Bitmap guid="guidImages" href="Resources\Images_32bit.bmp" usedList="bmpPic1, bmpPic2, bmpPicSearch, bmpPicX, bmpPicArrows"/>-->
<Bitmap guid="guidCmdIcon" href="Resources\cmdicon.bmp" usedList="bmpCmdIcon" />
</Bitmaps>
</Commands>
<KeyBindings>
<KeyBinding guid="guidDupSelectionCmdSet" id="cmdidDupSelection" key1="D" mod1="Alt" editor="guidVSStd97"/>
</KeyBindings>
<Symbols>
<GuidSymbol name="guidDupSelectionPkg" value="{e5f7e157-f686-46b7-a588-85b08cdaa5f0}" />
<GuidSymbol name="guidDupSelectionCmdSet" value="{85dcd5f2-19a5-4ee2-a99b-4fac4dc5c4ca}">
<IDSymbol name="MyMenuGroup" …Run Code Online (Sandbox Code Playgroud) 我试图得到一个IVsBuildableProjectCfg对象的实例,但我不知道如何得到它.
我目前可以IVsHierarchy毫无问题地获得DTE项目和/或代表每个活动项目的对象.你如何获得IVsBuildableProjectCfg每个项目的实例?
理想情况下,我想挂钩每个项目的构建事件,以了解每个构建是否成功,以及挂钩到解决方案以查看整个构建是否被触发.
(我也尝试过使用DTE2.BuildEvents,但是当我运行调试器时,我的处理程序永远不会触发.)
谢谢!
我按照定义工具窗口工具栏这个步行通过描述。
将新按钮添加到工具栏,并将它们连接到我的包中的代码,没有问题并且工作正常(所以我不是在寻找有关如何添加简单按钮的信息)。我看到还有其他按钮类型,例如SplitDropDown和MenuButton。两者都完全符合我的要求。但是我找不到任何关于如何以正确的方式定义子菜单的信息,我所有的实验都失败了。
这是我的按钮定义:
<Button guid="guidVsCmdSet" id="cmdIdSplitDowndown" priority="0x106" type="SplitDropDown">
<Parent guid="guidVsCmdSet" id="VsToolbarGroup" />
<Icon guid="guidImages" id="bmpPic2" />
<CommandFlag>IconAndText</CommandFlag>
<Strings>
<CommandName>cmdIdSplitDropdown</CommandName>
<ButtonText>Goto Next</ButtonText>
</Strings>
</Button>
Run Code Online (Sandbox Code Playgroud)
我想添加一个SplitDropDown具有一些预定义/静态子项的按钮。我想按钮的视觉外观看起来像 Visual Studio 的“向后导航”按钮。这就是我正在努力实现的目标。
有谁知道一个SplitDropDown按钮的定义,有一个子菜单,会是什么样子?
我正在编写一个 Visual Studio 2015 扩展,它查看用户右键单击的类的内容。
我已经得到了ProjectItem,但是你如何从中得到SemanticModel( 和) 呢?SyntaxTree
我需要查找文件中声明的某些类型的属性。我编写了一个代码分析器,它可以为您提供SemanticModel上下文,但我不知道如何在这里获取它。搜索没有发现任何有用的东西。我已经找到了如何SyntaxTree通过读取文件内容来解析 ,但对于SemanticModel. 理想情况下,我会连接到 VS 已经为该文件构建的模型。