2011-03-03 8 views
6

trato de hacer lo siguiente:Cómo obtener NHibernate.Type.IType de un Tipo?

hibQuery.SetParameter("MyParameter", valueObject, valueType); 

El único problema es que este método espera NHibernate.Type.IType en el tercer parámetro, pero valueType es de tipo Type. ¿Cómo podría convertir esto a IType?

Thx por cualquier tips sobre el tema sl3dg3

Respuesta

7

Trate de la incorporada en el NHibernateUtil.GetSerializable() método. Toma un CLR System.Type y devuelve el correspondiente tipo de IT. Más documentación: http://elliottjorgensen.com/nhibernate-api-ref/NHibernate/NHibernateUtil.html#M:NHibernate.NHibernateUtil.GetSerializable%28System.Type%29

+0

Thx, esto lo hizo el truco. – sl3dg3

+0

He intentado utilizar: 'mapper.Type ((IIdentifierType) NHibernateUtil.GetSerializable (typeof (DescribedEnumStringType )));' y Lanza: ' una excepción de tipo 'System.InvalidCastException' en DAL .dll pero no se manejó en el código de usuario Información adicional: No se puede convertir el objeto del tipo 'NHibernate.Type.SerializableType' para escribir 'NHibernate.Type.IIdentifierType'. ' aunque' DescribedEnumStringType 'anula los miembros necesarios de 'IIdentifierType' –

1

Puede usar los campos/métodos de la clase de ayuda NHibernate.NHibernateUtil.

4

Compruebe el método NHibernate.Type.TypeFactory.GetSerializableType().

1

Utilice el método NHibernateUtil.GuessType.

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