Метод SetValue
Для статического поля объект
передают null. Чтение -
GetValue.
Синтаксис
field.SetValue(target, value);
Пример
Давайте записать 12345
в поле экземпляра:
using System;
using System.Reflection;
class Gate
{
public int Open;
}
class Program
{
static void Main()
{
Gate gate = new Gate();
FieldInfo field = typeof(Gate).GetField("Open");
field.SetValue(gate, 12345);
int res = gate.Open;
Console.WriteLine(res);
}
}
Результат выполнения кода:
12345
Пример
Давайте записать статическое поле:
using System;
using System.Reflection;
class Gate
{
public static int Token;
}
class Program
{
static void Main()
{
FieldInfo field = typeof(Gate).GetField(
"Token",
BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly);
field.SetValue(null, 12345);
int res = Gate.Token;
Console.WriteLine(res);
}
}
Результат выполнения кода:
12345
Пример
Давайте записать строку в поле:
using System;
using System.Reflection;
class Gate
{
public string Name;
}
class Program
{
static void Main()
{
Gate gate = new Gate();
FieldInfo field = typeof(Gate).GetField("Name");
field.SetValue(gate, "abcde");
string res = gate.Name;
Console.WriteLine(res);
}
}
Результат выполнения кода:
"abcde"
Смотрите также
-
GetValue,
чтение -
PropertyInfo.SetValue,
свойство -
FieldInfo,
обзор -
BindingFlags,
поиск закрытого поля