Visual Studio.NET插件是怎么工作的
这篇文章将为大家详细讲解有关Visual Studio.NET插件是怎么工作的,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
我将从对象浏览器开始(ObjectBrowser)开始,因为他能够非常容易的让我们学习对象所以他是一非常好的助手。你可以在你要查看的对象上单击右键然后选择转到定义(GoToDefinition)来快事的查看类的成员。你可以在列出的成员中查看任何一个成员的原型,或则选择一个成员按F1访问在先帮助。applicationObject对象描述了Visual Studio.NET插件宿主(host)应用程序,在这个例子中宿主(host)应用程序为VisualStudio.NETIDE。applicationObject在OnConnection方法中实现。在在线帮助中找到“DTE”,甚至在向导自动产生的代码中声明为“_DTE”类型的变量applicationObject。在应用程序级别你会看到她又许多有趣的成员。
其中一个成员是ActiveDocument属性(property),它描述了当前焦点的文档(document)。这个文档就是你要进行InsertDate操作的文档。在窗口焦点和文档焦点有关系但是不同的情况下,一个非常有用的规则是,不管窗体是否有焦点具有焦点的文档都是将要被保存的。
ActiveDocument.Selection属性返回一个描述当前在文档中选择的对象。因为在C#中它是一个普通对象,所以我他它强制类型转换成TextSelectioni。ActiveDocument是一个普通的类,因为document(译者:类似于VC++中的document类)没有必要基于text,就好比一个窗体设计document(译者:学过VC++的人可能比较熟悉document类的继承关系,不熟悉的人可以看看有关这方面的书籍)。作为最终结果Selection属性也是一个普通的类,在这里我把它强制类型转换成类我们在代码中实际操作的TextSelection类型。
TextSelection描述了一个文件的视图(view),并且这个文件的动作和工具|选项中的设置还有使用的状态一至。他提供了很多的你可能想到用于修改文件的属性和方法,还有他可以影响使用的视图(view),当前选择的内容,插入位置。如果你曾经录制过宏,你可以看见使用TextSelection对象来捕获内容。InsertDate简单的的设置了Text属性值是当前的日期。类似Text一样,所有的动作都可以设置同类型的值。这就意味着所有得到的内容都要被替换,如果没有选择内容那么就会在光标的位置上替换,不过你要注意当前的状态是插入还是覆盖模式。
另外一种方法是使用Insert函数,这个方法允许你控制文本放置的位置和描述了一个不能重做的动作。使用这个方法来替换Text属性指定插入内容的代码如下:
((TextSelection)applicationObject.ActiveDocument.Selection).Insert( DateTime.Now.ToString("yyyy-MM-dd"), (int)EnvDTE.vsInsertFlags.vsInsertFlagsCollapseToEnd);
这个vsInsertFlags指出了文本已什么方式什么位置插入的。在线帮组中忽略了vsInsertFlags的文档,所以我在包含了这部分。
关于“Visual Studio.NET插件是怎么工作的”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341