まず、私はこの記事を読んでいます。彼は、テストと概念実証のために、カスタムのインメモリ リポジトリを使用しています。RepositoryEntityStore
. 次に、 new の使用を避けるために、彼はこれを実装しますが、これは記事には含まれていませんが、サンプルに含まれています。
namespace eDirectory.Naive.Repository
{
/// <remarks>
/// version 0.2 Chapter II: Repository
/// </remarks>
public class RepositoryLocatorEntityStore
: RepositoryLocatorBase
{
protected Dictionary<Type, object> RepositoryMap = new Dictionary<Type, object>();
public override IRepository<T> GetRepository<T>()
{
var type = typeof(T);
if (RepositoryMap.Keys.Contains(type)) return RepositoryMap[type] as IRepository<T>;
var repository = new RepositoryEntityStore<T>();
RepositoryMap.Add(type, repository);
return repository;
}
}
}
後で、彼はDIを使用してのインスタンスを作成しないと思います RepositoryEntityStore
。問題は、拡張するクラスを操作するためにこれをどのように変更できるRepositoryEntityStore
かです。CustomerRepositoryEntityStore のように?