我试图用“的System.Type”不包含定义与“GenericTypeArguments”(动态)
然后在可能的类型名进行比较来获得一个动态的LINQ列的类型:
if (args.Length > 0 && args[0].Name == "DateTime")
ProcessDateTimeType();
else if (args.Length > 0 && args[0].Name == "Double")
ProcessDoubleType();
这适用于使用.NET 4.0的Windows Vista,但不适用于使用.NET 4.0的Windows Server 2003。抛出错误'System.Type' does not contain a definition for 'GenericTypeArguments'
。
我只需要GenericTypeArguments可为空类型。
有什么想法?
备注
linqColumn
经由var linqColumn = linqTableType.GetProperty("COLNAME");
linqTableType
获得经由'Type linqTableType = Type.GetType("MYNAMESPACE." + "TABLENAME");
- 代码被内部 作为普雷斯顿评价提到执行的Web服务
https://msdn.microsoft.com/en-us/library/system.type.getgenericarguments(v= vs.100).aspx - 在Windows Server 2003 SP2上受支持 - 检查您是否安装了SP2 – Charleh
“GenericTypeArguments”没有添加到“System.Type”中,直到.Net 4.5。 https://msdn.microsoft.com/en-us/library/system.type.generictypearguments(v=vs.110).aspx –
其实是的普雷斯顿是正确的,我在看GetGenericArguments - 你确定你正在为Vista上的.NET 4.0? – Charleh