comparison Implab.ServiceHost/Unity/SerializedParameterElement.cs @ 277:963b17c275be v3

Refactoring Added <array> element to injection parameters Working on registrations of factories
author cin
date Sat, 28 Apr 2018 18:48:09 +0300
parents 6fefd5811b9b
children 6691aff01de1
comparison
equal deleted inserted replaced
276:b4e0f81c7425 277:963b17c275be
3 using System.Xml.Schema; 3 using System.Xml.Schema;
4 using System.Xml.Serialization; 4 using System.Xml.Serialization;
5 5
6 namespace Implab.ServiceHost.Unity 6 namespace Implab.ServiceHost.Unity
7 { 7 {
8 public class SerializedParameterElement : InjectionParameterElement, ISerializedValue { 8 public class SerializedParameterElement : InjectionParameterElement {
9 [XmlAttribute("href")] 9 [XmlAttribute("href")]
10 public string Location { get; set; } 10 public string Location { get; set; }
11 11
12 [XmlAnyElement] 12 [XmlAnyElement]
13 public XmlElement[] Content { get; set; } 13 public XmlElement[] Content { get; set; }
20 20
21 throw new Exception("No content found, expected XML document"); 21 throw new Exception("No content found, expected XML document");
22 } 22 }
23 23
24 public override void Visit(InjectionValueBuilder builder) { 24 public override void Visit(InjectionValueBuilder builder) {
25 builder.Visit(this); 25 var type = builder.ResolveInjectedValueType(TypeName);
26
27 var serializer = new XmlSerializer(type);
28 using(var reader = GetReader())
29 builder.SetValue(type, serializer.Deserialize(reader));
30
26 } 31 }
27 } 32 }
28 } 33 }