Полагайте, что у меня есть родитель, дочерний класс отношений и отображение. Я использую NHibernate для чтения объекта из базы данных и намеревался использовать WCF для отправки объекта через провод.
[DataContract]
, это не может быть сериализировано, поскольку свойство является ленивым прокси загрузки вместо реального известного типа.lazy=false
или lazy=true
не работает. Прежний нетерпеливо выберет все отношения, последний создаст прокси. Но я ничего не хочу вместо этого - a null
было бы лучшим.null
для тех ссылок, которые я не хочу выбирать. Пустой указатель, но не только прокси. Это будет делать WCF счастливый, и ненужный меньше времени, чтобы создать прокси ленивой загрузки.GetObjectToSerialize
, Я никогда не наблюдаю прошедшего прокси GetObjectToSerialize
, отъезд никакого шанса не проксировать его.После чтения комментариев, более перемещающихся в Интернете...
Мне кажется, что DTO сместил бы большую часть вычисления к стороне сервера. Но для проекта я продолжаю работать, 50% времени, клиент "более умен", чем сервер и сервер больше похожи на хранилище данных с проверкой и проверкой. Хотя я соглашаюсь, что сервер не является точно немым - я должен решить, когда уже выбрать дополнительные ссылки, и DTO сделает это очень явным.
Возможно, я должен просто взять боль. Я не знал http://automapper.codeplex.com/ прежде, это заставляет меня немного больше брать боль.
С другой стороны, я нашел http://trentacular.com/2009/08/how-to-use-nhibernate-lazy-initializing-proxies-with-web-services-or-wcf/, который, кажется, работает с IDataContractSurrogate.GetObjectToSerialize
.