我有一个主要通过服务构建的 POCO 类。我用一些信息点击了服务,取回了一个 dto 并使用它来构建对象的一部分。我正在尝试做的是延迟加载一些较大的属性,以便它们仅按需填充。我认为这是这样做的方法:
private List<User> _directReports;
public List<User>DirectReports
{
get
{
if (this._directReports == null)
{
SetDirectReports();
}
return this._directReports;
}
private set
{
this._directReports = value;
}
}
private void SetDirectReports()
{
using (var client = new ADSClient())
{
this._directReports = client.GetDirectReports(this.Guid);
}
}
这就是问题所在,也许我在追鬼,但是当我通过调试器并在实例化它后查看对象的内脏时,那些字段中有信息,它不应该在那个阶段,完全违背了目的我正在尝试做的事情。所以我试图理解这一点,我做错了吗?编译器是否将 get 方法作为我没有考虑的某个点运行?