public static SelectOption ToSelectOption(this BaseDomainEntity entityModel) {
return new SelectOption {
Id = entityModel.DomainId,
Name = entityModel.Name
};
}
在整个应用程序中使用此方法来创建选择选项。大多数情况下,每个模型都包含id和name作为我们想要使用的字段。但是,有时候,我们可能不得不使用Id和ProductNumber或Id和Description等。有没有办法可以传递我的函数的映射?
我甚至不知道从哪里开始,但从概念上讲,它就像
Id => entity.ProductNumber
Name => entity.Description
这样,每当某些东西需要与普通方法有所不同时,我就不必编写新函数。我想在没有传递属性名称和使用反射的情况下这样做。
答案 0 :(得分:1)
我不确定这对你来说是否会有太多代码,但请参见下文。
public static SelectOption ToSelectOption(this BaseDomainEntity entityModel, Func<BaseDomainEntity, SelectOption> selector)
{
return selector(entityModel);
}
用法如下。
var option = instance.ToSelectOption(x => new SelectOption { Id = x.DomainId, Name = x.Name});