Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.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构造函数注入配置关闭的泛型类型_C#_Generics_Dependency Injection_Unity Container_.net 4.5 - Fatal编程技术网

C# 为Unity构造函数注入配置关闭的泛型类型

C# 为Unity构造函数注入配置关闭的泛型类型,c#,generics,dependency-injection,unity-container,.net-4.5,C#,Generics,Dependency Injection,Unity Container,.net 4.5,我有以下类型: IQueryProvider接口: public interface IQueryProvider<TEntity, TEntityKey> 公共接口提供程序 以及添加了一个通用参数的实现: public class EFQueryProvider<TContext, TEntity, TEntityKey> : IQueryProvider<TEntity, TEntityKey>. 公共类eQueryProvider:IQueryPr

我有以下类型:
IQueryProvider
接口:

public interface IQueryProvider<TEntity, TEntityKey>
公共接口提供程序
以及添加了一个通用参数的实现:

public class EFQueryProvider<TContext, TEntity, TEntityKey> : IQueryProvider<TEntity, TEntityKey>.
公共类eQueryProvider:IQueryProvider。
此外,还有一些具体的存储库,包含了通用的QueryProvider。例如:

UserRepository : IUserRepository
{
   private IQueryProvider<User, int> _provider;

   public UserRepository(IQueryProvider<User, int> provider)
   {
       _provider = provider;
   }
}
UserRepository:IUserRepository
{
私人IQueryProvider\u供应商;
公共用户存储库(IQueryProvider提供程序)
{
_提供者=提供者;
}
}
我正在尝试使用Unity配置解析构造函数参数:

<register type="IUserRepository" mapTo="ConcreteUserRepository">
  <constructor>
     <param ... What should be here??? />
  <constructor>
</register>

如何将封闭泛型类型的实例传递给构造函数(以便将
EFQueryProvider
的实例传递给构造函数?我需要在每次存储库注册时执行此操作,因为ArticlesRepository可能需要另一个上下文。
感谢您的帮助。

我自己找到了解决方案。 配置应该如下所示:

<register name="myQueryProvider" type="MyLib.IQueryProvider[[User, MyEntityLib], int], MyAnotherLib" mapTo="MyLib.EFQueryProvider[[MyContext, MyEFLib], [User, MyEntityLib], int], MyEFLib" />

和存储库注册:

<register type="IUserRepository" mapTo="UserRepository">
        <constructor>
          <param name="queryProvider">
            <dependency name="myQueryProvider" />
          </param>
        </constructor>
      </register>

请用您正在使用的语言标记此问题。是吗?