Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 关于泛型类的Unity 2.0 IOC配置_C#_.net_Generics_Inversion Of Control_Unity Container - Fatal编程技术网

C# 关于泛型类的Unity 2.0 IOC配置

C# 关于泛型类的Unity 2.0 IOC配置,c#,.net,generics,inversion-of-control,unity-container,C#,.net,Generics,Inversion Of Control,Unity Container,我想让某个存储库类扩展一个通用类来执行一些常见操作,问题是:如何在配置文件中配置UserExRepository类型 public class UserExRepository : Repository<User>, IUserEx { public UserExRepository(Context context):base(context){ } } public abstract class Repository<TObject> : IRepositor

我想让某个存储库类扩展一个通用类来执行一些常见操作,问题是:如何在配置文件中配置UserExRepository类型

public class UserExRepository : Repository<User>, IUserEx
{
    public UserExRepository(Context context):base(context){ }
}

public abstract class Repository<TObject> : IRepository<TObject>
    where TObject : class
{
    protected Context Context = null;

    public Repository(Context context)
    {
        Context = context;
    }
    // do some common operation about entity, like create, delete...
}
public类UserExRepository:Repository,IUserEx
{
公共UserExRepository(上下文):基(上下文){}
}
公共抽象类存储库:IRepository
对象:班级
{
受保护的上下文=null;
公共存储库(上下文)
{
上下文=上下文;
}
//对实体执行一些常见操作,如创建、删除。。。
}

您可以配置绑定泛型到泛型、泛型到非泛型、非泛型到泛型

<unity>
    <containers>
        <container>
            <types>
                 <type type="Repository`1[[User]]" mapTo="UserExRepository ">
            </types>
        </container>
    </containers>
</unity>


但您无法配置通用约束。

您试图映射到UserExRepository的类型是什么?IRepository?奇怪的泛型约束。也许标记接口(例如IRepositoryItem)更有意义?