Я создаю сайт ASP.NET (2.0, нет, я не могу его изменить) с помощью NHibernate, и у меня есть специальный конвертер JSON, поэтому я не могу сериализовать свойства, которые я хочу скрыть от клиента.Это позволяет мне просто возвращать объекты и никогда не беспокоиться об их сериализованных значениях - они всегда безопасны.
К сожалению, получается, что если я использую query.FutureValue<class>()
, то объект, который сериализуется, будет первымNHibernate.Impl.FutureValue<class>
, а не моя сущность, что означает, что я получаю JSON, который выглядит следующим образом, если я добавляю его в словарь и возвращаю его клиенту:
{key: { Value: { /* my serialized object properties */ } }
Ранее я обнаружил, что не могу получить какой-либоинтерфейсы для работы в реализации JavaScriptConverter ASP ... только регулярные или абстрактные классы.Поэтому возвращение typeof(IFutureValue<MyBaseClass>)
в качестве поддерживаемого типа означает, что мой конвертер полностью игнорируется.Я могу поймать MyBaseClass, потому что я реорганизовал вещи раньше, чтобы использовать абстрактную базу вместо интерфейса, но не интерфейса.
И затем я обнаружил, что реализация FutureValue в .Impl является внутренней по отношению к сборке или какой-то другой.другая такая ерунда, которая только делает мой опыт .NET еще более болезненным.Поэтому я не могу использовать typeof(FutureValue<MyBaseClass>)
для обработки всего этого, потому что FutureValue существует только в моих сеансах отладки.
Есть ли способ получить тип класса из сборки?Или способ убедить ASP, что интерфейсы действительно используются?Или может быть какой-нибудь суперкласс, к которому я могу получить доступ, позволил бы мне обойти всю проблему?
Помогите!Мне нравится мой Futures, он позволяет мне пакетировать целую кучу звонков одновременно!
(если что-то не понятно или вы хотите больше кода, непременно спросите! Я могу опубликовать довольнонемного.)