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

Lia*_*iam 4 c# sitecore glass-mapper

Glass.Mapper文档状态:

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; }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

有谁知道为什么标记这些字段很重要virtual?没有这个,似乎工作得很好.我什么都看不到继承领域和overrides它们?

tec*_*414 6

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