2010-04-29 71 views
2

在C#中如何确定对象是原始对象还是原始对象的动态代理?c#动态代理

我遇到了这个需要玩nhibernate。

回答

3

答案就在这里在previous question.

如果一个类是 NHibernate的代理通过其铸造 (不出所料)INHibernateProxy您可以检测。

如果你需要得到底层 “真正” 的对象,用途:

Session.GetSessionImplementation()PersistenceContext.Unproxy(proxiedObject) 你并不需要测试代理来 呼叫Unproxy;如果它不是代理,它将返回原始的 参数。