2011-08-20 129 views
4

我搜索了网页,并找到了如何在设置中添加特定的自定义数据类型。 我正在通过自己插入数据,而不是在程序运行时通过代码插入数据。我的问题是如何将自定义数据类型添加到设计器中的组合框。现在我想通了,需要建议,如何添加这种类型的数据类型数组。我将以简单的例子展示。Settings.settings中的自定义数据类型为类的数组

我有这个类

[Serializable()] 
public class Product 
{ 
public string Name { get; set; } 
public int Price { get; set; } 
} 
在settings.setting

我已经设置ProductSettings,类型MyApp.Data.Product,范围应用和默认值包含以下

<xml definition> 
<Product xlmns:xsi=.....> 
<Name>Banana</Name> 
<Price>1</Price> 
</Product> 

通过这种方式,它工作得很好。但现在,我需要从设置文件中获取产品集合,因此我尝试将类型指定为MyApp.Data.Product [],但它不能。设计器弹出窗口,并说“MyApp.Data.Product []未定义。”。我怎么弄出来的?

感谢

PF:这个项目是从WPF应用程序中使用刚刚类库 - 如果问题

回答

1

使用System.Collections.Generic.List <MyApp.Data.Product>。或者,您可以创建一个从列表< MyApp.Data.Product inherites >

然后在值类,你都会有这样的格式:

<ArrayOfProduct xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd= 
"http://www.w3.org/2001/XMLSchema"> 
    <Product> 
    <Name>Banana</Name> 
    <Price>1</Price> 
    </Product> 
</ArrayOfProduct> 
+0

谢谢你的建议,但VS仍然给我的错误信息* * Type:System.Collections.Generic.List 未定义。** –

+0

我不知道什么是错的。这里是我的样本显示我是如何做到的:http://dl.dropbox.com/u/14576915/CollectionInSettings.zip – LostInComputer

+0

真的很好的示例,我很感激它,但它给了我ShowProduct方法中的NullPointerException :(幸运的是你的第二个解决方案解决了我的问题(从列表中得到的类)。这个VS中的设置编辑器非常愚蠢,它甚至没有为我添加xml标签,所以我必须通过我自己复制它们。为我工作的解决方案),我会将它标记为很好的答案 - >您将获得积分,用户将找到针对此问题的工作解决方案;-)再次感谢。 –