public class TodoUserPref
public string someinfo { get; set; }
public class InvoiceUserPref
public int somenumber { get; set; }
public TodoUserPref TodoPref { get; set; }
public InvoiceUserPref InvoicePref { get; set; }
public static void Main()
var returnObject = new GetDto();
string inputKey = "TodoPref";
var propToChange = returnObject.GetType().GetProperty(inputKey);
var type = Type.GetType(propToChange.PropertyType.ToString());
var asd = JsonConvert.DeserializeObject("{someinfo:\"asd\"}", type);
propToChange.SetValue(returnObject, asd );
Console.WriteLine(returnObject.TodoPref.someinfo);