У меня есть приложение .Net, разделенное на стороны клиента и сервера, и сервер предоставляет услуги REST (с использованием WCF).У меня есть определения служб, подобные этим:
[WebGet(UriTemplate = "/Customers/{id}")]
Customer GetCustomerById(string id);
[WebGet(UriTemplate = "/Customers")]
List<Customer> GetAllCustomers();
Класс Customer и его друзья сопоставляются с базой данных с помощью Fluent NHibernate с Lazy Loading.Если я вернусь из службы за пределами Session-scope, вызов службы завершится неудачно, поскольку он не сможет сериализовать ссылочное свойство отложенной загрузки Orders (см. Определение класса в конце).Проблема в том, что мне нужно, чтобы это было лениво загружено, так как я не хочу, чтобы мой GetAllCustomers
-сервис извлекал все указанные Заказы.Поэтому я хочу как-то уведомить сериализатор, чтобы он не пытался сериализовать Orders на GetAll.Но обратите внимание, что одно и то же свойство должно быть сериализовано в GetCustomerById - поэтому я должен указать это для службы.Можно ли это сделать ?!
Классы:
public class Customer
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual IList<Order> Orders { get; set; }
}
public class Order
{
public virtual int Id { get; set; }
// ++
}