comparison Implab.ServiceHost/Unity/ContainerElement.cs @ 273:79110a16cab7 v3

Working on Unity xml configuration: Refactoring in progress
author cin
date Thu, 26 Apr 2018 19:35:01 +0300
parents d4d437ec4483
children 22629bf26121
comparison
equal deleted inserted replaced
272:9d1cca834b05 273:79110a16cab7
4 using System.Xml.Schema; 4 using System.Xml.Schema;
5 using System.Xml.Serialization; 5 using System.Xml.Serialization;
6 6
7 namespace Implab.ServiceHost.Unity { 7 namespace Implab.ServiceHost.Unity {
8 [XmlRoot("container", Namespace = Schema.ContainerConfigurationNamespace)] 8 [XmlRoot("container", Namespace = Schema.ContainerConfigurationNamespace)]
9 public class ContainerElement : IXmlSerializable { 9 public class ContainerElement : ContainerItemElement {
10 10
11 public List<IConfigurationElement> Items {get; set; } = new List<IConfigurationElement>(); 11 public List<ContainerItemElement> Items {get; set; } = new List<ContainerItemElement>();
12 12
13 public XmlSchema GetSchema() { 13 public override void Visit(ContainerContext context) {
14 return null; 14 context.Visit(this);
15 }
16
17 public void ReadXml(XmlReader reader) {
18 while(reader.Read() && reader.NodeType != XmlNodeType.EndElement) {
19 var registration = ConfigurationSchema.Default.Deserialize<IConfigurationElement>(reader);
20 Items.Add(registration);
21 }
22 }
23
24 public void WriteXml(XmlWriter writer) {
25 foreach(var item in Items) {
26 var serializer = new XmlSerializer(item.GetType());
27 serializer.Serialize(writer, item);
28 }
29 } 15 }
30 } 16 }
31 } 17 }