为什么所有Glass.Mapper字段都是虚拟的?

时间:2015-10-13 14:23:31

标签: c# sitecore glass-mapper

Glass.Mapper documentation states

using Glass.Mapper.Sc.Configuration.Attributes;

namespace Glass.Mapper.Sites.Sc.Models.Landing
{
    public class HomePage
    {
        public virtual string Title { get; set; }
        public virtual string MainBody { get; set; }
    }
}
     

您可以看到此课程不包含任何特殊标记   使用Glass.Mapper编写类时要记住的一件重要事情   是确保所有字段都标记为虚拟。 Glass.Mapper   可以使用a自动推断为模型加载哪些数据   按需映射和自动映射的组合。

它避免使用"按需"和"自动映射"但没有解释如何或为什么。

有谁知道为什么将这些字段标记为virtual很重要?没有这个,似乎工作得很好。我没有看到任何东西继承字段和overrides它们?

1 个答案:

答案 0 :(得分:6)

如果您正在使用延迟加载,Glass映射器需要能够动态生成包装您的类的代理类。为了能够继承和覆盖您的属性,需要将它们标记为virtual