PersistentGenericSet является частью NHibernate (используется для отслеживания изменений в коллекциях). Он основан на интерфейсе ISet и классах из Iesi.Collections, которые использовались для заполнения пробела в .Net Framework, поскольку нет типа Set. Я думаю, что WCF имеет проблемы с сериализацией этого типа.
Быстрое решение состоит в том, чтобы изменить сопоставления NHibernate для использования Bag вместо Set. Тогда вы можете использовать обычный IList<T>
вместо Set<T>
в ваших классах w.
Лучшим решением является создание удаленного фасада , который отправляет DTO на ваши конечные точки WCF. Это позволит вам сохранить интерфейс ваших внутренних типов отдельно от тех, которые представлены как удаленные сервисы. Джимми Богардс Automapper - отличный инструмент, который поможет с процессом картирования.
Редактировать
После перечитывания проблемы я осмотрел и наткнулся на эту статью , в которой описывается обходной путь отправки коллекций NHibernate через WCF. Дэвид Брайон написал хорошую продолжение статья .