【发布时间】:2012-11-25 17:31:34
【问题描述】:
我正在尝试手动滚动我自己的 IoC 工具。
这是 IoC 代码的一部分:
public static object Resolve(Type contract)
{
Type Implementation = typeSettings[contract];
ConstructorInfo constructor = Implementation.GetConstructors()[0];
ParameterInfo[] constructorParam = constructor.GetParameters();
if (constructorParam.Length == 0)
Activator.CreateInstance(Implementation);
List<object> paramList = new List<object>(constructorParam.Length);
foreach(ParameterInfo param in constructorParam)
paramList.Add(Resolve(param.ParameterType));
return constructor.Invoke(paramList.ToArray());
}
我想返回一个泛型类型 T 的对象。我做不到。
我也无法对其进行类型转换。我只使用一个具有两个依赖项的接口。
(IPredictingFuture, EartAndSkyPrediction, BadConnections)
我正在尝试将其类型转换为接口类型。 (为了访问我的客户端代码中的方法。)但这也行不通。
我错过了什么?
【问题讨论】:
-
“我也无法进行类型转换。” - 为什么不?真的不清楚你要做什么,或者为什么你期望能够使用你只在执行时才知道的类型的成员......
-
@JonSkeet,让我添加更多代码来清除它。
标签: c# object ioc-container