1

我想做的是从会话中获取对象数据。

下面的代码应该清楚所有:

//Type of object which i need to get in runtime
Type someUnknownType = typeof(someObject);
int id = 1; // for example
// here i got error cannot resolved someUnknownType
ISession.Get<someUnknownType>(id);

我怎样才能做到这一点?

编辑: someObject是实例变量。

4

2 回答 2

3

首先,你有一个错误:

  • ifsomeObject是一个实例变量,你不能调用typeof(someObject). 你只能打电话someObject.GetType()
  • 如果它是一种类型,您仍然使用通用版本。

您是否尝试过使用非通用版本

object x = ISession.Get(someObject.GetType(), id);
于 2012-04-16T11:38:27.313 回答
-1

您需要使用此 Get 方法:

ISession.Get(Type, Object);

这是NHibernate 文档中的一个示例:

Cat cat = (Cat) sess.Get(catInstance.GetType(), id);
于 2012-04-16T11:36:12.087 回答