如何使我的自定义类型显示在 Visual Studio 设置编辑器中
本文关键字:Studio Visual 设置 编辑器 显示 何使 我的 自定义 类型 | 更新日期: 2024-11-08 05:47:53
>假设我有一个自定义类型,我想用来允许用户在app.config
中配置Person
的详细信息:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
当我在项目的Visual Studio设置编辑器中单击" Browse...
"时(在下拉" Type
的组合框后),如何确保" Person
"出现在类型列表中?
[1: ]
在MSDN关于Select a Type Dialog Box
的文章中,我发现了这个:
因此,您的解决方案可用的引用程序集显示在树控件中。打开引用的程序集以显示程序集的命名空间。
之一是制作自己的程序集,将其引用到您的解决方案中,您可以在Type Dialog Box
中找到它。
当我的搜索时,我发现System.Drawing.Point
可用(使用此结构)而System.Drawing.Rectangle
不可用(使用此结构),Type Dialog Box
两者都具有相同的attributes
struct
,因此我发现在该Dialog Box
中显示Type
并不依赖于制作struct
和使用一些attributes
。
[2: ]
换句话说,您可以使用 fName; lName
之类的值进行string
类型设置,并向类中添加构造函数或方法,以将类属性设置为所需的属性,如下所示:
public Person(string fullName, char seperator = ';')
{
if (fullName.IndexOf(seperator) > 0)
{
firstname = fullName.Substring(0, fullName.IndexOf(seperator) - 1);
lastname = fullName.Substring(fullName.IndexOf(seperator) + 1);
}
}
[3: ]
这不是一个好方法,但可以注意到,您可以通过Settings.Designer.cs
编辑来手动编辑设置类型,如下所示:
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("fName; lName")]
public Person Test
{
get {
return ((Person)(this["Test"]));
}
set {
this["Test"] = value;
}
}
但这会迫使你对你的类进行一些更改,每当你保存时Settings
你应该一次又一次地进行这种更改。