2012-05-01 20 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; 
}