public void DeserializeVersionLinks(XElement parentNode, SerializationContext context) { foreach (XElement linkedItemsElement in parentNode.Elements(context.ExolutioNS + "LinkedItems")) { VersionedItemPivot pivot = new VersionedItemPivot(); PivotList.Add(pivot); Dictionary <Version, Guid> linkedItemsIds = new Dictionary <Version, Guid>(); foreach (XElement linkedItemElement in linkedItemsElement.Elements(context.ExolutioNS + "LinkedItem")) { Guid id = SerializationContext.DecodeGuid(linkedItemElement.Attribute("itemID").Value); Guid versionId = SerializationContext.DecodeGuid(linkedItemElement.Attribute("versionNumber").Value); Version version = (Version)Project.TranslateComponent(versionId); linkedItemsIds[version] = id; } if (linkedItemsIds.Count > 0) { foreach (KeyValuePair <Version, Guid> kvp in linkedItemsIds) { IVersionedItem exolutioObject = (IVersionedItem)Project.TranslateComponent(kvp.Value); pivotLookupDictionary[exolutioObject.ID] = pivot; pivot.PivotMapping.Add(kvp.Key, exolutioObject.ID); } } } }