如何获取nhibernate DynamicProxy的代理类型的全名?

时间:2009-02-23 23:57:41

标签: c# .net nhibernate castle-windsor proxy-classes

我正在使用netdatacontractserializer和SerializationBinder为客户端的nhibernate代理创建自己的运行时类型。

这一切都有效,但我不得不假设域模型中每个名称只有一种类型。即我被迫忽略命名空间。原因是SerializationBinder只允许我访问“MyObjectProxyb04bae2d04d34e8a98b1d93bf24428cc”和“DynamicProxyGenAssembly2,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null”来导出父级别。

正如您所看到的,没有数据指向父类型的命名空间。

我已经看过更改生成的代理的名称(包含名称空间前缀),但这似乎是硬编码的。

1 个答案:

答案 0 :(得分:2)

您可以将代理转换为INHibernateProxy并获取持久的基础类:

((INHibernateProxy)proxy).HibernateLazyInitializer.PersistentClass