2011-03-03 38 views
6

我儘量做到以下幾點:如何從類型獲取NHibernate.Type.IType?

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

唯一的問題是,這種方法需要在第三個參數NHibernate.Type.IType,但VALUETYPE是Type型。我怎麼能把它轉換成IType?

THX任何的竅門 sl3dg3

回答

7

嘗試內置NHibernateUtil.GetSerializable()方法。它需要一個CLR System.Type並返回相應的IType。更多文檔:http://elliottjorgensen.com/nhibernate-api-ref/NHibernate/NHibernateUtil.html#M:NHibernate.NHibernateUtil.GetSerializable%28System.Type%29

+0

Thx,這沒有把戲。 – sl3dg3 2011-03-03 15:57:59

+0

我嘗試使用: 'mapper.Type((IIdentifierType)NHibernateUtil.GetSerializable(typeof運算(DescribedEnumStringType )));' 和它拋出: ' '' 類型發生在DAL的例外.dll但未在用戶代碼中處理 其他信息:無法轉換類型'NHibernate.Type.SerializableType'的對象以鍵入'NHibernate.Type.IIdentifierType'。 ' 即使'DescribedEnumStringType '確實會覆蓋必要的'IIdentifierType'成員 – 2016-12-06 15:40:39

1

您可以使用NHibernate.NHibernateUtil幫助程序類中的字段/方法。

4

檢查出NHibernate.Type.TypeFactory.GetSerializableType()方法。

1

使用NHibernateUtil.GuessType方法。

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