我正在使用netdatacontractserializer和SerializationBinder为客户端的nhibernate代理创建自己的运行时类型。
这一切都有效,但我不得不假设域模型中每个名称只有一种类型。即我被迫忽略命名空间。原因是SerializationBinder只允许我访问“MyObjectProxyb04bae2d04d34e8a98b1d93bf24428cc”和“DynamicProxyGenAssembly2,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null”来导出父级别。
正如您所看到的,没有数据指向父类型的命名空间。
我已经看过更改生成的代理的名称(包含名称空间前缀),但这似乎是硬编码的。
答案 0 :(得分:2)
您可以将代理转换为INHibernateProxy并获取持久的基础类:
((INHibernateProxy)proxy).HibernateLazyInitializer.PersistentClass