diff 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
line wrap: on
line diff
--- a/Implab.ServiceHost/Unity/ContainerElement.cs	Thu Apr 26 03:14:54 2018 +0300
+++ b/Implab.ServiceHost/Unity/ContainerElement.cs	Thu Apr 26 19:35:01 2018 +0300
@@ -6,26 +6,12 @@
 
 namespace Implab.ServiceHost.Unity {
     [XmlRoot("container", Namespace = Schema.ContainerConfigurationNamespace)]
-    public class ContainerElement : IXmlSerializable {
-
-        public List<IConfigurationElement> Items {get; set; } = new List<IConfigurationElement>();
-
-        public XmlSchema GetSchema() {
-            return null;
-        }
+    public class ContainerElement : ContainerItemElement {
 
-        public void ReadXml(XmlReader reader) {
-            while(reader.Read() && reader.NodeType != XmlNodeType.EndElement) {
-                var registration = ConfigurationSchema.Default.Deserialize<IConfigurationElement>(reader);
-                Items.Add(registration);
-            }
-        }
+        public List<ContainerItemElement> Items {get; set; } = new List<ContainerItemElement>();
 
-        public void WriteXml(XmlWriter writer) {
-            foreach(var item in Items) {
-                var serializer = new XmlSerializer(item.GetType());
-                serializer.Serialize(writer, item);
-            }
+        public override void Visit(ContainerContext context) {
+            context.Visit(this);
         }
     }
 }
\ No newline at end of file