创建设置类别
在本演练中,你将创建一个 Visual Studio 设置类别,并使用它将值保存到设置文件中以及从此设置文件中还原值。 设置类别是一组显示为“自定义设置点”(即显示为导入和导出设置向导中的复选框)的相关属性。 (您可以在工具菜单中找到它。)设置保存或恢复为类别,向导中不会显示单独的设置。 有关详细信息,请参阅环境设置。
可通过从 DialogPage 类派生来创建设置。
若要开始本演练,你必须先完成创建选项页的第一部分。 生成的 Options 属性网格允许你检查和更改类别中的属性。 在设置文件中保存属性类别后,可以检查文件来查看属性值的存储方式。
创建设置类别
在本部分中,你将使用自定义设置点来保存和还原设置类别的值。
创建设置类别
完成创建选项页。
打开 VSPackage.resx 文件并添加以下三个字符串资源:
名称 值 106 我的类别 107 我的设置 108 OptionInteger 和 OptionFloat 这会创建指定“我的类别”类别、“我的设置”对象和“OptionInteger 和 OptionFloat”类别说明的资源。
注意
在这三项中,只有类别名称不会出现在导入和导出设置向导中。
在 MyToolsOptionsPackage.cs 中,将名为
OptionFloat
的float
属性添加到OptionPageGrid
类中,如以下示例所示。public class OptionPageGrid : DialogPage { private int optionInt = 256; private float optionFloat = 3.14F; [Category("My Options")] [DisplayName("My Integer option")] [Description("My integer option")] public int OptionInteger { get { return optionInt; } set { optionInt = value; } } [Category("My Options")] [DisplayName("My Float option")] [Description("My float option")] public float OptionFloat { get { return optionFloat; } set { optionFloat = value; } } }
注意
名为“我的类别”的
OptionPageGrid
类别现在包含以下两个属性:OptionInteger
和OptionFloat
。将 ProvideProfileAttribute 添加到
MyToolsOptionsPackage
类中,为其指定 CategoryName“我的类别”和 ObjectName“我的设置”,并将 isToolsOptionPage 设置为 true。 将 categoryResourceID、objectNameResourceID 和 DescriptionResourceID 设置为前面创建的相应字符串资源 ID。[ProvideProfileAttribute(typeof(OptionPageGrid), "My Category", "My Settings", 106, 107, isToolsOptionPage:true, DescriptionResourceID = 108)]
生成项目并启动调试。 在实验实例中,你现在应该会看到我的网格页同时具有整数值和浮点值。
检查设置文件
在本部分中,将属性类别值导出到设置文件。 检查文件,然后将值导回到属性类别中。
按 F5 以调试模式启动项目。 这会启动实验实例。
打开工具>选项对话框。
在左窗格中的树视图中,展开我的类别,然后单击我的网格页。
将 OptionFloat 的值更改为 3.1416,并将 OptionInteger 的值更改为 12。 单击确定。
在工具菜单上,单击导入和导出设置。
此时,会出现导入和导出设置向导。
确保已选择导出所选环境设置,然后单击下一步。
此时会显示选择要导出的设置页。
单击我的设置。
说明会更改为 OptionInteger 和 OptionFloat。
确保我的设置是唯一选择的类别,然后单击下一步。
此时会显示命名设置文件页面。
将新设置文件命名为 MySettings.vssettings,并将其保存在相应的目录中。 单击完成。
该
.vssettings
文件是 Visual Studio 设置文件。 文件的架构是开放的。 大多数情况下,架构遵循 XML 结构,其中每个类别都是一个标记,该标记本身可以包含子类别标记。 这些子类别标记可以包含属性值标记。 虽然大多数包都使用相同结构,但 Visual Studio 中的包都可以使用它选择的架构向文件提供任意 XML。导出完成页面会报告你的设置已成功导出。
在“文件”菜单中,指向“打开”,再单击“文件”。 找到 MySettings.vssettings 并打开它。
你可以在文件的以下部分中找到导出的属性类别(GUID 将有所不同)。
<Category name="My Category_My Settings" Category="{4802bc3e-3d9d-4591-8201-23d1a05216a6}" Package="{6bb6942e-014c-489e-a612-a935680f703d}" RegisteredName="My Category_My Settings"> PackageName="MyToolsOptionsPackage"> <PropertyValue name="OptionFloat">3.1416</PropertyValue> <PropertyValue name="OptionInteger">12</PropertyValue> </Category>
请注意,完整类别名称是通过将下划线添加到后跟对象名称的类别名称形成的。 OptionFloat 和 OptionInteger 与导出的值一起显示在类别中。
关闭设置文件而不对其进行更改。
在工具菜单上,单击选项,展开我的类别,单击我的网格页面,然后将 OptionFloat 的值更改为 1.0,将 OptionInteger 的值更改为 1。 单击确定。
在工具菜单上,单击导入和导出设置,选择导入选定的环境设置,然后单击下一步。
此时会显示保存当前设置页面。
选择否,仅导入新设置,然后单击下一步。
此时将显示选择要导入的设置集合页面。
在树视图的我的设置节点中,选择 MySettings.vssettings 文件。 如果文件未显示在树视图中,请单击浏览并找到它。 单击下一步。
此时将显示选择要导入的设置对话框。
确保选择我的设置,然后单击完成。 在导入完成页面显示时,单击关闭。
在工具菜单上,单击选项,展开我的类别,单击我的网格页面,并验证是否已还原属性类别值。