当前位置: 首页>>代码示例>>C#>>正文


C# SerializationContext.ResetReferences方法代码示例

本文整理汇总了C#中SerializationContext.ResetReferences方法的典型用法代码示例。如果您正苦于以下问题:C# SerializationContext.ResetReferences方法的具体用法?C# SerializationContext.ResetReferences怎么用?C# SerializationContext.ResetReferences使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SerializationContext的用法示例。


在下文中一共展示了SerializationContext.ResetReferences方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: SerializePacket

        /// <summary>
        /// Serialize an AMFX packet.
        /// </summary>
        /// <exception cref="SerializationException">Error during serialization.</exception>
        private static void SerializePacket(XmlWriter writer, object graph, SerializationContext context)
        {
            if (writer == null) throw new ArgumentNullException("writer");
            if (context == null) throw new ArgumentNullException("context");
            if (graph == null) throw new ArgumentNullException("graph");

            var packet = graph as AmfPacket;
            if (packet == null) throw new SerializationException("Object is not an AmfPacket");

            writer.WriteStartDocument();
            writer.WriteStartElement(AmfxContent.AmfxDocument, AmfxContent.Namespace);
            writer.WriteAttributeString(AmfxContent.VersionAttribute, context.AmfVersion.ToAmfxName());
            writer.WriteAttributeString(AmfxContent.PacketHeaderCount, packet.Headers.Count.ToString());
            writer.WriteAttributeString(AmfxContent.PacketBodyCount, packet.Messages.Count.ToString());

            //Write headers
            foreach (var header in packet.Headers.Values)
            {
                writer.WriteStartElement(AmfxContent.PacketHeader);
                writer.WriteAttributeString(AmfxContent.PacketHeaderName, header.Name);
                writer.WriteAttributeString(AmfxContent.PacketHeaderMustUnderstand, header.MustUnderstand.ToString());
                Serialize(writer, header.Data, context);
                writer.WriteEndElement();

                context.ResetReferences();
            }

            //Write bodies
            foreach (var body in packet.Messages)
            {
                writer.WriteStartElement(AmfxContent.PacketBody);
                writer.WriteAttributeString(AmfxContent.PacketBodyTarget, body.Target);
                writer.WriteAttributeString(AmfxContent.PacketBodyResponse, body.Response);
                Serialize(writer, body.Data, context);
                writer.WriteEndElement();

                context.ResetReferences();
            }

            writer.WriteEndElement();
            writer.WriteEndDocument();
        }
开发者ID:artema,项目名称:DotAmf,代码行数:46,代码来源:DataContractAmfSerializer.cs


注:本文中的SerializationContext.ResetReferences方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。