依赖注入,参数类型编译错误

时间:2015-08-04 07:08:43

标签: c# reflection types dependency-injection

我一直在使用C#进行基本的控制容器反转。我保持尽可能简单,使用Dictionary来存储已注册的类型。但是,当我尝试编写Resolve函数时,出现编译错误。

private object RecursiveResolve<I>()
{
   // Find out what parameters we need for the object
   ConstructorInfo typeConstructor = typeof(I).GetConstructors().First<ConstructorInfo>();
   ParameterInfo[] typeParameters = typeConstructor.GetParameters();
   List<object> resolvedParameters = new List<object>();

   // Iterate through parameters
   foreach (ParameterInfo parameter in typeParameters)
   {
       Type parType = parameter.ParameterType;
       object resolvedParameter = RecursiveResolve<parType>(); // Compiler error here
       resolvedParameters.Add(resolvedParameters);
   }

   return typeConstructor.Invoke(resolvedParameters.ToArray());
}

编译错误是: The type or namespace name parType could not be found (are you missing a using directive or an assembly reference)

我当前对错误的看法是RecursiveResolve在&lt;&gt;中需要一个已定义的类型名称,而不是一个变量,即使该变量是一个Type对象。但是,我不太确定解决方案是什么。

我需要更改什么来保持parType,以便我可以动态浏览对象的参数并解决它们?

0 个答案:

没有答案