本文整理汇总了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();
}