は、私はこのような汎用的なインタフェースを定義していますTornLifestyleシンプルインジェクタ
public class ProviderPlanManagementRepo : IPlanManagmentRepository<Provider>
すべてがこのようなインターフェイスを登録することで動作します:
public interface IPlanManagmentRepository<TEntity> where TEntity:class
は、私はこのような具体的な実装を定義するとき
container.Register(typeof(IPlanManagmentRepository<>),
new [] { typeof(IPlanManagmentRepository<>).Assembly},
Lifestyle.Scoped);
ただし、このクラスaその後、私はこのエラーを取得する
public interface IProviderPlanManagementRepo
{
void doSomethingSpecificToProviderHere();
}
public class ProviderPlanManagementRepo : IProviderPlanManagementRepo,
IPlanManagmentRepository<Provider>
{
}
:LSOハンドルより多くの原料と私は余分なインターフェイスを追加
-[Torn Lifestyle] The registration for IPlanManagmentRepository maps to the same implementation and lifestyle as the registration for IProviderPlanManagementRepo does. They both map to ProviderPlanManagementRepo
私もIProviderPlanManagementRepoでIPlanManagmentRepositoryを継承しようとしましたが、同じエラーを得ました。
このクラスは、汎用インターフェイスからの実装のみを処理する必要がありますか? これを簡単なインジェクタで実現することは可能ですか?
ありがとう@Steven、私のDbContextがスコープであることを述べたように、私はあなたの提案を試み、DbContextがスコープであっても機能しましたが、上記の3つのリポジトリを使用している場合、上記(一時的なもの)は、3つすべてが同じDbContextを共有しますか?彼らはすべて同じトランザクションを共有する必要があるので、これは重要です。 –
@ danif430:はい、同じインスタンスを共有します。やってみて。 – Steven