从字符串“ IQueryable <SomeType>”获取类型

时间:2019-09-16 08:40:26

标签: c# generics type-variables

我正在尝试从字符串获取Type变量

string queryableString = nameof(IQueryable) + "<" + entityType.FullName + " >";
Type type = Type.GetType(queryableString);

这适用于任何具体课程。但是为IQueryable返回null。 即使下面的内容也返回null。

Type newType = typeof(SomeEntity).Assembly.GetType(nameof(IQueryable) + "<" + entityType.FullName + " >");
Type newType2 = Type.GetType(nameof(IQueryable) + "<" + entityType.FullName + " >" + "," + typeof(CaseHeader).Assembly.FullName);
Type newType3 = Type.GetType(nameof(IQueryable) + "<" + entityType.FullName + " >" + "," + typeof(IQueryable).Assembly.FullName);

编辑: 根据重复标记的答案

string queryableString = typeof(IQueryable).FullName + "`1[" + entityType.FullName + " ]"; /*+ "," + typeof(CaseHeader).Assembly.FullName;*/
var queryReturnType = queryableString.GetTypeFromString();

从上面生成的字符串是

System.Linq.IQueryable`1[Sfc.Wms.Foundation.Data.Entities.CaseHeader ]

这也不起作用

这也不起作用

System.Linq.IQueryable`1[[Sfc.Wms.Foundation.Data.Entities.CaseHeader,Sfc.Wms.Foundation.Data, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null ]]

0 个答案:

没有答案