Что я пытаюсь сделать, это обобщить создание репозиториев с помощью AutoFixture и Moq. У меня есть метод под названием 'add', который добавляет поддельные записи в список. Список называется записями и является глобальным для класса. Генерирование M является моделью, которую нужно издеваться. Метод возвращает «this», поэтому метод может быть привязан.Передача свойства универсального класса в качестве параметра в AutoMoq
public Repo<M> add(string prop, string val) {
var a = fixture.Build<M>().With(m => m.GetProperty(prop), val).Create();
records.Add(a);
return this;
}
с классом расширения (я нашел этот поиск SO):
public static class MyExtensions
{
public static object GetProperty<T>(this T obj, string name) where T : class
{
Type t = typeof(T);
return t.GetProperty(name).GetValue(obj, null);
}
}
Ошибка я получаю "ArgumentException произошло в Ploeh.AutoFixture.dll".
Вопрос: Как передать свойство общего объекта в качестве параметра метода, когда модель неизвестна во время компиляции?
В качестве побочного элемента ваш метод 'add' должен быть назван' Add' вместо этого, в соответствии с [правилами именования] (https://msdn.microsoft.com/en-us/library/vstudio/ms229043 (v = VS.100) .aspx). – dcastro