Я пытаюсь создать Object Builder, чтобы я мог легко создавать объекты для модульного тестирования.Я хотел бы создать метод With (), чтобы я мог передать Func <>, и он установит для меня правильное свойство.
Вот что у меня есть:
public class EquipmentModelBuilder
{
public EquipmentModel Object { get; set; }
public EquipmentModelBuilder()
{
Object = new EquipmentModel();
}
public EquipmentModelBuilder WithCategory(int categoryId)
{
Object.EquipmentCategoryID = categoryId;
return this;
}
public EquipmentModelBuilder With(Func<EquipmentModel> setter)
{
Object = setter.Invoke();
return this;
}
public EquipmentModel Build()
{
return Object;
}
}
Конечно, WithCategory () работает, но я не хочу создавать все методы для каждого свойства, я хотел бы иметь возможность:
EquipmentModelBuilder.With(x => x.Property1 = 1).With(x => x.Property2 = "2").Build()
Любая идея, что я делаю неправильно?