Да, вы можете использовать отражение - просто выберите его с помощью Type.GetProperty
(с указанием флагов привязки, если необходимо), а затем вызовите SetValue
соответственно.Пример:
using System;
class Person
{
public string Name { get; set; }
}
class Test
{
static void Main(string[] arg)
{
Person p = new Person();
var property = typeof(Person).GetProperty("Name");
property.SetValue(p, "Jon", null);
Console.WriteLine(p.Name); // Jon
}
}
Если это не публичная собственность, вам нужно будет указать BindingFlags.NonPublic | BindingFlags.Instance
в вызове GetProperty
.