2012-05-01 22 views
0

是否可以在C#中創建一個具有可變數量子屬性的屬性,然後通過xml生成它們?下面的例子具有可變子屬性的C#屬性

Question.Name = "cake"; 
Question.Type = "radio"; 
foreach(Option option in xmloptions) 
{ 
    Question........... 
} 

所以我得到的是如果xmloptions有一個問題,然後4下一個5選項。我是否可以在創建的財產中填充這些以容納這些問題?如果是的話,我如何列舉它們?

原諒我,如果這是沒有意義的......

回答

1

我認爲你Question類的屬性之一應該是一個列表或者一個字典:

public class Question { 

    private List<Option> _Options = new List<Option>() 

    public List<Option> Options { 
     get { return m_Options; } 
    } 
} 

,然後你添加的選項:

question.Options.Add(option); 

如果每個選項由某物確定 - 例如名稱 - 您可以使用字典:

public class Question { 

    private Dictionary<string, Option> _Options = new Dictionary<string,Option>(); 

    public Dictionary<string,Option> Options { 
     get { return _Options; } 
    } 
} 

,在這種情況下您添加選項:

question.Options[name] = option; 
+0

工作就像一個魅力!非常感謝! –

0

你可以做期權(Question.Option)的屬性類型是一個ArrayList。如果你需要,你可以把它作爲問題對象列表。

3

你可以使用一個Dictionary<string, object>(你也可以使用一個更具體的類型不是對象,如果你一直都知道類型的時間提前)進行儲存:

var question = new Dictionary<string, object>(); 
question["Name"] = "cake"; 
question["Type"] = "radio"; 

foreach(Option option in xmloptions) 
{ 
    question["SomeOtherProperty"] = option.SomeOtherProperty; 
}