BishnuKarki Ответов: 1

Setvalue для значения поля в отражении с помощью C#


Вот мой сценарий.
У меня есть класс MyClass и защищенное поле _myAttempt, которое представляет собой список.

Класс списка _myAttempt выглядит следующим образом.

Из MyClassTest, как я могу присвоить значение ежедневному использованию отражения.

Я попытался следовать под MyClassTest, используя отражение, но я не могу назначить объект SetValue.

Любая помощь будет оценена по достоинству.

Что я уже пробовал:

внутренний класс MyClass {
защищенный список<попытка> _myAttempt = null;
}

попытка публичного класса {
публичная строка Daily {get;set;}
public string Weekly {get;set;}
}

публичный класс MyClassTest {
[TestMethod]
общественного недействительными TestDaily(){
var fieldInfo = typeof(MyClass).GetField("myattempt", BindingFlags.непубличный |
Флаг bindingflags.Пример);
fieldInfo.SetValue(obj,value); //не уверен, что здесь есть объект и как его назначить

}
}

BillWoodruff

код, который вы показываете, никогда не будет компилироваться.

1 Ответов

Рейтинг:
1

Oshtri Deka

В вашем случае obj-это экземпляр MyClass, а value-это список, который вы хотите передать.

var obj = new MyClass();
var newValue = new List<attempt>();

fieldInfo.SetValue(obj, newValue );

Читайте об этом подробнее.


BillWoodruff

голосование № 1: этот код так же бесполезен, как и ОП