小编Dav*_*rez的帖子

c# - 动态返回通用接口

我正在尝试根据标志返回两个存储库实例之一.我的存储库接口和实现如下所示:

public interface IRepository<T>
{
    T Insert(T entity);
    void Delete(T entity);
    IEnumerable<T> SearchFor(Expression<Func<T, bool>> predicate);
    IEnumerable<T> GetAll();
    T SearchForFirst(Expression<Func<T, bool>> predicate);
    bool Has(Expression<Func<T, bool>> predicate);
}

class Repository<T> : IRepository<T> where T : class    { ... implementation here ...}
Run Code Online (Sandbox Code Playgroud)

并且返回存储库的两个实例之一的方法应该类似于:

    public IRepository<T> GenerateRepository(bool flag)
    {
        if ( flag ) {
           return new Repository<MyFirstType>();
        } else {
           return new Repository<MySecondType>();
        }
    }
Run Code Online (Sandbox Code Playgroud)

任何人都可以指出我应该如何实际写出正确的方向吗?

谢谢

c# generics interface

2
推荐指数
1
解决办法
1467
查看次数

标签 统计

c# ×1

generics ×1

interface ×1