- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
// Не очень красивое решение. Но зато можно не выставлять в паблик всякие кишочки
private void SetValueToPrivateField<Type>(Type instance, string field, object value) {
if (instance != null) {
FieldInfo fieldInfo = typeof(Type).GetField(
field,
BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic
);
if (fieldInfo != null) {
fieldInfo.SetValue(instance, value);
}
}
}
Публичный сеттер нарушит инкапсуляцию, поэтому будем использовать рефлексию
"Мне нельзя ничего есть, поэтому я вставлю себе трубку прямо в живот и буду при необходимости заливать прямо туда. Но есть не буду"