2009-02-23 4 views
0

Я использую netdatacontractserializer и SerializationBinder для создания собственных типов времени выполнения для прокси-серверов nhibernate на стороне клиента.Как получить полное имя проксированного типа для nhibernate DynamicProxy?

Все это работает, за исключением того, что я вынужден предположить, что по одному имени в модели домена существует только один тип. т.е. я вынужден игнорировать пространство имен. Причина в том, что SerializationBinder дает мне доступ к «MyObjectProxyb04bae2d04d34e8a98b1d93bf24428cc» и «DynamicProxyGenAssembly2, Version = 0.0.0.0, Culture = neutral, PublicKeyToken = null» для получения родительского шрифта.

Как вы можете видеть, нет данных, указывающих на пространство имен родительского типа.

Я посмотрел на изменение имени сгенерированного прокси (чтобы включить префикс пространства имен), но это кажется жестким.

+0

Я думаю, некоторые подробности о том, почему вы пытаетесь изменить имя класса прокси-объекта будет полезно. –

+0

Пожалуйста, задайте другой вопрос: «Как узнать прокси-тип для прокси-сервера DynamicProxy?», Это стало совершенно не связанным с исходным вопросом после редактирования. –

+0

mausch хорошо пункт. Я переформулировал вопрос. – Simon

ответ

2

Вы можете бросить прокси для INHibernateProxy и получить постоянный базовый класс:

((INHibernateProxy)proxy).HibernateLazyInitializer.PersistentClass 
+0

как сделать это на стороне клиента после сериализации. – Simon

+0

Не знаю ничего о SerializationBinder, я просто отвечаю на ваш nhibernate-прокси-вопрос. –

 Смежные вопросы

  • Нет связанных вопросов^_^