public override void ReadFrom(XElement xE) { base.ReadFrom(xE); TemplateId = null; AdUnionId = null; TemplateElements = null; AdAsImage = null; Dimensions = null; Name = null; Duration = null; OriginAdId = null; foreach (var xItem in xE.Elements()) { var localName = xItem.Name.LocalName; if (localName == "templateId") { TemplateId = long.Parse(xItem.Value); } else if (localName == "adUnionId") { AdUnionId = InstanceCreator.CreateAdUnionId(xItem); AdUnionId.ReadFrom(xItem); } else if (localName == "templateElements") { if (TemplateElements == null) { TemplateElements = new List <TemplateElement>(); } var templateElementsItem = new TemplateElement(); templateElementsItem.ReadFrom(xItem); TemplateElements.Add(templateElementsItem); } else if (localName == "adAsImage") { AdAsImage = new Image(); AdAsImage.ReadFrom(xItem); } else if (localName == "dimensions") { Dimensions = new Dimensions(); Dimensions.ReadFrom(xItem); } else if (localName == "name") { Name = xItem.Value; } else if (localName == "duration") { Duration = int.Parse(xItem.Value); } else if (localName == "originAdId") { OriginAdId = long.Parse(xItem.Value); } } }