2015-03-04 5 views
-1

У меня есть класс,Значение настройки к свойству списка переменной объекта класса в C#

public class Test 
{ 
    public int b { get; set; } 
    public int c { get; set; } 
    public List<Doc> doc=new List<Doc>(); 
} 

Public Class Doc 
{ 
    public int a { get; set; } 
    public int b { get; set; } 
} 

Здесь я могу установить значение тестовых переменных, таких как,

Test test = new Test(); 
string var1= "b"; 
PropertyInfo pi= test.GetType().GetProperty(var1); 
pi.SetValue(test, Convert.ChangeType(1,pi.PropertyType), null); 

так я может получить test.b как 1. Мне также нужно установить значение для doc. Как достичь этого. Спасибо за ваше время.

ответ

1

doc не является собственностью; это поле.

 var test = new Test(); 

     var field = test.GetType().GetField("doc"); 

     field.SetValue(test, new List<Doc>() { new Doc() }); 

     Console.WriteLine(test.doc.Count); // 1 
Смежные вопросы