C# 如何从类型获取NHibernate.Type.IType?

C# 如何从类型获取NHibernate.Type.IType?,c#,nhibernate,hql,C#,Nhibernate,Hql,我试着做到以下几点: hibQuery.SetParameter("MyParameter", valueObject, valueType); 唯一的问题是,此方法需要在第三个参数中使用NHibernate.Type.IType,但valueType的类型为Type。如何将其转换为IType 任何TIPP的Thx sl3dg3尝试内置的NHibernateUtil.GetSerializable()方法。它接受CLR System.Type并返回相应的IType。更多文档:您可以使用NHib

我试着做到以下几点:

hibQuery.SetParameter("MyParameter", valueObject, valueType);
唯一的问题是,此方法需要在第三个参数中使用
NHibernate.Type.IType
,但valueType的类型为
Type
。如何将其转换为IType

任何TIPP的Thx
sl3dg3

尝试内置的
NHibernateUtil.GetSerializable()
方法。它接受CLR System.Type并返回相应的IType。更多文档:

您可以使用
NHibernate.NHibernateUtil
帮助类中的字段/方法。

查看
NHibernate.Type.TypeFactory.GetSerializableType()
方法。

使用NHibernateUtil.GuessType方法

NHibernate.Type.IType type = NHibernateUtil.GuessType(typeof(T));

我尝试使用:
mapper.Type((IIdentifierType)NHibernateUtil.GetSerializable(typeof(DescribedEnumStringType))并引发:`System.InvalidCastException类型的异常'发生在DAL.dll中,但未在用户代码中处理附加信息:无法将'NHibernate.type.SerializableType'类型的对象强制转换为'NHibernate.type.IIIdentifierType'类型即使
DescribedEnumStringType
覆盖了必要的
IIIdentifierType
成员