我需要定义一种对象,我从服务中接受。服务有不同的命名空间,但是同一个对象,所以我写了一些解析器来获取收到的类型的名称。 但我有一些麻烦来检测嵌套列表类型,如
List<List<SomeObjectType>>
or
List<List<Tuple<int,int,SomeObjectType>>
所以在我的递归函数中,我需要创建一个带有样本元素类型的列表类型。像这样:
public Type getType(TypeSpec TypeInfo, string NameSpace)
{
Type foundType = ObjectsHelper.ByName(NameSpace + "." + nameOfType);
if (foundType == null) throw new TypeNotFoundException(TypeInfo.name);
else
{
if (TypeInfo.generic_params != null && TypeInfo.generic_params.Count > 0) // if has generic params, run recursive
{
var listOfParams = new List<Type>();
foreach (var gp in generic_params)
{
listOfParams.Add(this.getType(gp, NameSpace));
}
// here is a heart of the matter
HowToAddGenericParameters(foundType, listOfParams); // ????
}
return foundType;
}
}
有可能吗? =)