我升级到GlassMapper版本4.0.1.8并且我遇到了一些模型属性的奇怪行为。
我所有的模型都是由TDS生成的,大多数都可以正常使用。在一个模型上,Glass Mapper在一个特定属性和基础模型中的所有属性上抛出了一个空引用异常。对于模型的所有属性设置延迟加载为false后,问题就消失了......
然而,之后我在所有模型属性上设置了SitecoreFieldSettings.DontLoadLazily,因为它们都是由TDS生成的,但是现在不同模型的另一个属性给了我相同的异常,并且此属性也不是延迟加载的。
这是一个例外:
Exception: System.NullReferenceException
Message: Object reference not set to an instance of an object.
Source: Glass.Mapper
at Glass.Mapper.AbstractService.InstantiateObject(AbstractTypeCreationContext abstractTypeCreationContext)
at Glass.Mapper.Pipelines.ObjectConstruction.Tasks.CreateConcrete.LazyObjectInterceptor.Intercept(IInvocation invocation)
at Castle.DynamicProxy.AbstractInvocation.Proceed()
at Castle.Proxies.ListitemLinkProxy.get_Link()
at ASP._Page_Views_MyProject_Pages_MyPage_cshtml.Execute() in c:\mycode.cshtml:line 86
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult)
at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
1)为什么Glass mapper会在某些字段上抛出此异常,如果它们是延迟加载的?
2)为什么我在延迟加载第一个模型的字段后,在延迟加载的不同字段上得到相同的异常?