假设我有一个自定义类型,我想用它来允许用户在Person
中配置app.config
的详细信息:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
我如何确保" Person
"当我点击" Browse...
"时出现在类型列表中在项目的 Visual Studio设置编辑器中(在下载" Type
")的组合框之后?
答案 0 :(得分:1)
[ 1:]
在MSDN article about Select a Type Dialog Box
,我发现了这个:
可用的引用程序集显示在树控件中。打开引用的程序集以显示程序集的名称空间。
因此,您的解决方案之一是制作自己的程序集,将其引用到您的解决方案中,然后您可以在Type Dialog Box
中找到它。
在我的搜索中,我发现System.Drawing.Point
可用(With this structure)且System.Drawing.Rectangle
在Type Dialog Box
中不可用(With this structure) struct
与attributes
相同,因此我发现Type
显示Dialog Box
并不依赖于制作struct
并使用某些attributes
。< / p>
[ 2:]
另一方面,您可以使用类似string
的{{1}}类型设置,并在您的类中添加构造函数或方法,将您的类属性设置为您想要的属性,如下所示:
fName; lName
[ 3:]
这不是一个好方法但可以注意到,您可以通过在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);
}
}
中进行编辑来手动编辑设置类型,如下所示:
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;
}
}
时,您都应该反复进行更改。