Мы используем CTP-версию библиотеки Microsoft OData за октябрь 2011 года.В течение некоторого времени, включая предыдущие версии, мы сталкивались с периодически возникающим исключением нулевой ссылки при сериализации модели из глубины внутренних областей библиотеки.
System.NullReferenceException
в Microsoft.Data.Edm.Internal.Cache 2.GetValue(TContainer container,
Func
2 вычислить, Func`2 onCycle)
в Microsoft.Data.Edm.Csdl.Internal.CsdlSemantics.CsdlSemanticsStructuredTypeDefinition.FindProperty (String name) * * 100 *по адресу Microsoft.Data.OData.ValidationUtils.ValidatePropertyDefined (String propertyName, IEdmStructuredType owningStructuredType)
по адресу Microsoft.Data.OData.Json.ODataJsonWriterUtils.WriteProperty (свойство JsonWriter, приобретенный мнойполи, Boolean allowNamedStreamProperty, Uri baseUriForNamedStreamProperty, версия ODataVersion, DuplicatePropertyNamesChecker duplicatePropertyNamesChecker, ProjectedPropertiesAnnotation projectedProperties, логическое написаниеResponse, ODataWriterBehavior writerBehavior)
в Microsoft.Data.OData.Json.ODataJsonWriterUtils.WriteProperties (JsonWriter jsonWriter, IODataUrlResolver urlResolver, модель IEdmProrytyOntyOntyOntyOntyOnDeaderSuper_RuTeReOntyOnTeReOnTyReTeReNeRuTeReNeTyReTeReNeTyRuTeReNeTyReTeReNeTyReTeRuTeReNTeRuTeRuTeReNTeReTeRuT))).DuplicatePropertyNamesChecker duplicatePropertyNamesChecker, ProjectedPropertiesAnnotation projectedProperties, Boolean writingResponse, ODataWriterBehavior writerBehavior)
в Майкрософт.Data.OData.Json.ODataJsonWrit.Eat.()
в Microsoft.Data.OData.ODataWriterCore.InterceptException (действие Action)
в Microsoft.Data.OData.ODataWriterCore.WriteEndImplementation ()
в Microsoft.Data.OData.ODataWriterCore.WriteEnd ()
Мы реализовали обходной путь (явная предварительная инициализация EDM с помощью вызова IEdmModel.Validate(...)), которая первоначально, казалось, предотвращала сбой, но это не всегда эффективно.
Кто-нибудь еще видит эту проблему, и если да, есть ли эффективный обходной путь / решение?