Dobry dzień,Podpole aktualizacji FieldInfo pola
Potrzebuję funkcji, która będzie iterować na słownika, który przechowuje nazwę zmiennej i nową zmienną zmiennej. Następnie muszę zaktualizować zmienną klasy o tę wartość.
void UpdateValues(Type type, Dictionary<string, string> values)
{
foreach (var value in values)
{
var fieldInfo = selected.GetComponent(type).GetType().GetField(value.Key);
if (fieldInfo == null) continue;
fieldInfo.SetValue(selected.GetComponent(type), value.Value);
}
}
Działa, ale chcę niewielkiej poprawy i absolutnie nie wiem, czy to możliwe. Jak widać, ta funkcja może akceptować dowolną klasę, a nie tylko jedną konkretną.
Jeśli mam klasy jak ten
class test
{
public string age;
}
I chciałbym korzystać z funkcji w ten sposób, że będzie działać.
UpdateValues(typeof(test), new Dictionary<string, string>{{"age", "17"}});
Problem jest, jeśli mam klasy jak ten i chciałbym zaktualizować „podpole” (pole w polu)
class test
{
public string age;
}
class test2
{
public test data;
}
Myślałam, że składnia może być coś takiego, ale mam nie mam pojęcia, jak mogłem to zrobić.
UpdateValues(typeof(test2), new Dictionary<string, string>{{"data.age", "17"}});
Podsumowując, muszę zrobić funkcję, która będzie miała klasę, który jest przechowywany w innej klasie. Funkcja będzie iterować przez słownik i aktualizować pola klasy, a nawet jej subpola.
absolutnie ogromne dzięki :) wszystko działa, będę dostosować szczegóły – Mrgnito