良い日、FieldInfoフィールドのサブフィールドを更新する
変数名と変数の新しい値を格納する辞書を反復する関数を作成する必要があります。その後、クラス変数をその値で更新する必要があります。
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);
}
}
私は少しでも改善したいと思いますが、可能かどうかは絶対に分かりません。 ご覧のとおり、この関数は特定のクラスだけでなく、どのクラスでも受け入れることができます。
私はこの
class test
{
public string age;
}
のようなクラスを持っていると私はこの方法は、それがうまくいく機能を使用したい場合。
UpdateValues(typeof(test), new Dictionary<string, string>{{"age", "17"}});
「サブフィールド」(フィールド内のフィールド)
class test
{
public string age;
}
class test2
{
public test data;
}
を私はこのようなクラスを持っていると私は更新したい場合、問題は、私は、構文は次のようなものかもしれないことを考えていたが、私が持っていますどうすればいいのか分かりません。
UpdateValues(typeof(test2), new Dictionary<string, string>{{"data.age", "17"}});
それをまとめるために、私は別のクラスに格納されたクラスを取る機能を作成する必要があります。関数は、辞書の中を繰り返して、クラスのフィールドと彼女のサブフィールドを更新します。
絶対に巨大な感謝:)すべての作品を、それを送信するために
Dictionary<string,object>
インスタンスを作成した関数を呼び出し、私は詳細をカスタマイズします – Mrgnito