现在,我有一个这样的枚举:
public enum ReferenceType
{
Language = 1,
Period = 2,
Genre = 3
}
Language、Period 和 Genre 都是映射回我的数据库中的表的实体类。我还有模型类与实体类几乎 1 到 1 映射,然后我将其显示在视图中。
我也有这样的服务方法:
List<Model> Get<Model, Entity>()
where Model : BaseModel
where Entity : BaseEntity;
我可以这样称呼它Service.Get<LanguageModel, Language>()
,它会从我的数据库中返回表 Language 的每一行,并自动将它们转换为 LanguageModel,然后我将在我的视图中显示。
我想围绕该Get()
方法创建一个包装器方法,您只需传入一个整数,它将调用我的Get()
方法自动填充实体和模型类类型。唯一的问题是我很难理解这背后的实际实现。
伪代码将类似于:
- 称呼
WrapperGet((int)ReferenceType.Genre)
- Wrapper 方法解析实体类型 (
Genre
) 和模型类型 (GenreModel
) - 使用已解析的实体和模型类型调用该
Get()
方法,这样就可以了Get<GenreModel, Genre>()
- 返回结果
我将如何在 C# 中实际实现这一点?