У меня возникли проблемы с оборачиванием виртуальных прокси. Я прочитал тонны статей и потратил несколько часов, пытаясь найти хорошую информацию, но мне еще предстоит найти что-то всеобъемлющее. Поэтому я сделаю общий запрос здесь для получения более подробной информации (либо здесь, либо просто ссылка). Я также добавлю некоторые детали ниже, чтобы лучше объяснить, что именно я хочу.
У меня есть несколько объектов, и между ними много ссылок. Для краткости у меня будет один объект (узел) с базовыми отношениями родитель-ребенок. Когда я извлекаю этот объект из базы данных, я хотел бы реализовать отложенную загрузку. Из того, что я прочитал, виртуальный прокси-сервер по существу будет обрабатывать всю ленивую загрузку для меня, ссылаясь на интерфейс (INode) и вытягивая элементы данных по мере необходимости. [Примечание: на самом деле у меня нет класса INode, но когда я помещаю виртуальное ключевое слово в мои элементы данных, прокси-сервер действительно используется]
Когда я делаю элементы данных в моих классах виртуальными, кажется, что создается прокси. Это виртуальный прокси? Они реализуют отложенную загрузку?
Я искал информацию о виртуальном ключевом слове, но единственная документация, которую я смог найти, - это использовать ее для методов, которые используются для наследования, чтобы производные классы могли переопределить функцию, которая не имеет ничего общего с тем, что я хочу ( Я думаю).
Это мой текущий Node.cs
[DataContract(IsReference=true)]
public partial class Node
{
[DataMember]
public long ID { get; private set; }
[DataMember]
public virtual Node Parent { get; set; }
[DataMember]
public virtual ICollection<Node> Children { get; set; }
}
По сути, в этот момент я очень смущен, и мне просто нужно какое-то руководство по этой теме или даже онлайн-ресурс, на который я могу посмотреть, поскольку все, что я нашел, были менее чем полезны.
Заранее спасибо.