事情是这样的:
我写了一个存储过程。存储过程的输入参数类型是UNIQUEIDENTIFIER(即Guid),然后用一个强类型的DataSet(即.xsd文件)调用它,数据库是SQL2005。
接着通过程序调用强类型的TableAdapter执行这个存储过程。由于输入参数为Guid。所以我把输入参数通过“Guid gEvaluatingConnectionId = new Guid("ea067f86-99a4-dd11-adc7-00d0b7bd1679");” 转换为Guid类型传递了进去。
结果提示“未将对象引用到实例。”查了错误信息。错误信息提示:“只能对 Type.IsGenericParameter 为 True 的类型调用方法。”。这是为什么呢?
有点急的说。先谢谢了。
下面是MSDN上对Type.IsGenericParameter的说明:
Type.IsGenericParameter 属性
注意:此属性在 .NET Framework 2.0 版中是新增的。
获取一个值,该值指示当前 Type 是否表示泛型类型或方法的定义中的类型参数。
如果 Type 对象表示泛型类型定义或泛型方法定义的类型参数,则为 true;否则为 false。
备注
表示泛型类型参数的 Type 对象可通过调用表示泛型类型定义的 Type 对象的 GetGenericArguments 方法或表示泛型方法定义的 MethodInfo 对象的 GetGenericArguments 方法来获得。
对于泛型类型或方法定义,IsGenericParameter 属性 (Property) 对产生的数组的每个元素返回 true。
对于封闭构造的类型或方法,IsGenericParameter 属性 (Property) 对 GetGenericArguments 方法返回的数组的每个元素返回 false。
对于开放构造类型或方法,数组的某些元素可能是特定的类型,而其他可能是类型参数。IsGenericParameter 对类型返回 false,对类型参数返回 true。ContainsGenericParameters 属性的代码示例演示了混合有类型和类型参数的泛型类。
所以我感觉你的错误不是因为传了GUID类型的参数,而是可能在其他方面。希望对你有所帮助。