私はとを使用ADO.NET EF
してRepository pattern
います。一部のエンティティに共通するロジックを分離したいので、ジェネリックメソッドを使用するのが最善の方法であると判断しました。これは私のメソッドの宣言です:
internal static void ChangeCode<T>(IService<T> service, Entity entity, MaskedTextBox txtBox, string newCode, long? entityId)
where T : Common.DbContextEntities.Entity
IService<T>
はすべてのサービスが派生するEntity
基本クラスであり、はすべてのエンティティが派生する基本クラス形式です。ただし、実行時に、andなどのより具体的なサービスとエンティティを渡しSoleService
ますSole
。私が達成したいのは、どういうわけか、実行時型とそれらのプロパティをメソッド全体から表示できるように宣言することservice
ですentity
。ここで明確にするために、私が今していることは次のとおりです。
if (entity.GetType() == typeof(Sole))
{
Sole tempEntity = new Sole();
ISoleService tempService = UnityDependencyResolver.Instance.GetService<ISoleService>();
問題は、使用できるtempEntity
のはtempService
その範囲内でif (entity.GetType() == typeof(Sole))
あり、複数のタイプをチェックする必要がある場合(実際にはそうです)、異なるタイプごとにすべてのビジネスロジックを繰り返す必要があることです。メソッド内のどこでも使用できるように、特定の方法で実行時tempEntity
に設定する方法を探しています。tempService