コード例 #1
0
        private void WriteEntry(ODataWriter writer, ODataItem entry)
        {
            ODataResource resource = entry as ODataResource;

            if (resource != null)
            {
                writer.WriteStart(resource);
            }
            else
            {
                writer.WritePrimitive((ODataPrimitiveValue)entry);
            }

            var annotation = entry.GetAnnotation <ODataEntryNavigationLinksObjectModelAnnotation>();
            ODataNestedResourceInfo navLink = null;

            if (annotation != null)
            {
                for (int i = 0; i < annotation.Count; ++i)
                {
                    bool found = annotation.TryGetNavigationLinkAt(i, out navLink);
                    ExceptionUtilities.Assert(found, "Navigation links should be ordered sequentially for writing");
                    this.WriteNavigationLink(writer, navLink);
                }
            }

            writer.WriteEnd();
        }