раньше не приходилось сталкиваться
пусть есть какой-то класс, содержащий в принципе какие угодно поля (про поля, кроме того, что они простых типов (ну типа int, string и т.п.) (без методов (конструктор не в счет))
нужно написать генератор большого количества значений полей этого класса. например что-то типа этого:
class gen<T>
{
List<T> gen();
}
как это реализуется? если можно с несложным примером.
Здравствуйте, Kaifa, Вы писали:
K>раньше не приходилось сталкиваться
K>пусть есть какой-то класс, содержащий в принципе какие угодно поля (про поля, кроме того, что они простых типов (ну типа int, string и т.п.) (без методов (конструктор не в счет))
K>нужно написать генератор большого количества значений полей этого класса. например что-то типа этого:
K>K>class gen<T>
K>{
K> List<T> gen();
K>}
K>
K>как это реализуется? если можно с несложным примером.
Создать объект класса:
var obj = Activator.CreateInstance<T>();
Если нужно вызывать конструктор с параметрами, то есть соответствующий вариант метода.
работать с полями можно через рефлекшен:
foreach (var f in typeof(T).GetFields()) // все поля класса Т
{
object value;
if (f.FieldType == typeof(int))
{
value = 42; // генерируем какое-то значение для int
}
else if (f.FieldType == typeof(string))
{
value = "string42";
}
...
f.SetValue(obj, value); // устанавливаем значение поля
}
ну или по аналогии через GetProperties или более общий GetMembers, если нужны не только поля, но и свойства.
Здравствуйте, Kaifa, Вы писали:
K>раньше не приходилось сталкиваться
K>пусть есть какой-то класс, содержащий в принципе какие угодно поля (про поля, кроме того, что они простых типов (ну типа int, string и т.п.) (без методов (конструктор не в счет))
K>нужно написать генератор большого количества значений полей этого класса. например что-то типа этого:
K>K>class gen<T>
K>{
K> List<T> gen();
K>}
K>
K>как это реализуется? если можно с несложным примером.
Нагенерить XML или json и создать десериализатором на основе этих данных?
Или поюзать кодогенерацию на том же, прости-хосспади, T4 engine?
MD>Нагенерить XML или json и создать десериализатором на основе этих данных?
MD>Или поюзать кодогенерацию на том же, прости-хосспади, T4 engine?
я не понял что ты только что сказал
Здравствуйте, Kaifa, Вы писали:
K>раньше не приходилось сталкиваться
K>пусть есть какой-то класс, содержащий в принципе какие угодно поля (про поля, кроме того, что они простых типов (ну типа int, string и т.п.) (без методов (конструктор не в счет))
K>нужно написать генератор большого количества значений полей этого класса. например что-то типа этого:
Заполнить поля объектов какими-то данными или мусором?
https://github.com/bchavez/Bogus
K>нужно написать генератор большого количества значений полей этого класса. например что-то типа этого:
Если это нужно по работе (тест-объекты, например, генерить), а не для самообразования, то
я бы посоветовал на
AutoFixture посмотреть.
var fixture = new Fixture();
var sut = fixture.Create<MyClass>();
var collection = fixture.CreateMany<MyAnotherClass>();