从封闭的泛型转换为开放的泛型

时间:2011-03-17 19:32:09

标签: c# generics

我正在寻找一种方法将以下封闭的泛型语句转换为打开通用语句,即我不想为用户,雇主等实体重复相同的操作。

使用用户关闭类型:

UnityContainer.RegisterType<Func<IDataContextAdapter, IRepository<User>>>(
    new InjectionFactory(c => 
                    new Func<IDataContextAdapter, IRepository<User>>(
                        context => new Repository<User>(context))
        )
 );

我尝试通过应用typeof(..)操作转换为Open泛型,但没有取得多大成功。

有什么想法?

1 个答案:

答案 0 :(得分:1)

制作通用功能

public void Bla<T>() where T:class
{
UnityContainer.RegisterType<Func<IDataContextAdapter, IRepository<T>>>(
    new InjectionFactory(c => 
                    new Func<IDataContextAdapter, IRepository<T>>(
                        context => new Repository<T>(context))
        )
 );
}