現在、次のような列挙型があります。
public enum ReferenceType
{
Language = 1,
Period = 2,
Genre = 3
}
言語、期間、およびジャンルはすべて、データベース内のテーブルにマップするエンティティクラスです。また、エンティティクラスとほぼ1対1でマップするモデルクラスがあり、それをビューに表示します。
私もこのようなサービス方法を持っています:
List<Model> Get<Model, Entity>()
where Model : BaseModel
where Entity : BaseEntity;
私はそれを次のように呼び出すことができService.Get<LanguageModel, Language>()、データベースのテーブルLanguageからすべての行を返し、それらを自動的にLanguageModelsに変換し、それをビューに表示します。
Get()整数を渡すだけでメソッドのラッパーメソッドを作成したいのですが、Get()メソッドを呼び出して、エンティティとモデルのクラスタイプを自動的に入力します。唯一の問題は、この背後にある実際の実装に頭を悩ませるのに苦労していることです。
擬似コードは次の行に沿っています。
- 電話
WrapperGet((int)ReferenceType.Genre) - ラッパーメソッドは、エンティティタイプ(
Genre)とモデルタイプ()をGenreModel解決します Get()解決されたエンティティとモデルタイプを使用してメソッドを呼び出すと、次のようになります。Get<GenreModel, Genre>()- 結果を返す
これを実際にC#で実装するにはどうすればよいですか?