2015-01-27 3 views
-1

У меня есть два класса:Установка значений для вложенного класса

public class Task { 
    public int TaskId {get; set;} 
    public string Desc {get; set;} 
    public Client taskClient {get; set;} 
} 

public class Client { 
    public string Firstname {get;set;} 
    public string Lastname {get;set;} 
    ...(other 18 properties) 
} 

у меня есть списки значений (около 100) со следующей структурой:

TaskId = 1, Desc = "Task 1", Firstname = "Mark", Lastname ="Smith". 

Как я могу создавать новые задачи с помощью отражения в Это дело?

+0

Вы можете получить значение свойства taskClient, а затем получить значение «FirstName». это будет две операции отражения –

+0

Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

+0

Итак, вам нужно установить внутренние значения свойств или создать новые задачи? –

ответ

0

Создайте объект с помощью Activator Class и заполните значения через отражение.

var clientType = typeof(Client); 
var c = Activator.CreateInstance(clientType); 
clientType.GetProperty("Firstname").SetValue(c, "Mark"); 
clientType.GetProperty("Lastname").SetValue(c, "Smith"); 

var taskType = typeof(Task); 
var t = Activator.CreateInstance(taskType); 
taskType.GetProperty("TaskId").SetValue(t, 1); 
taskType.GetProperty("Desc").SetValue(t, "Task 1"); 
taskType.GetProperty("taskClient").SetValue(t, c);