2011-08-20 80 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標籤,所以我必須通過我自己複製它們。爲我工作的解決方案),我會將它標記爲很好的答案 - >您將獲得積分,用戶將找到針對此問題的工作解決方案;-)再次感謝。 –