Mercurial > pub > ImplabNet
comparison Implab.ServiceHost/Unity/SerializedElement.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 | 8714471e8d78 |
comparison
equal
deleted
inserted
replaced
276:b4e0f81c7425 | 277:963b17c275be |
---|---|
2 using System.Xml; | 2 using System.Xml; |
3 using System.Xml.Serialization; | 3 using System.Xml.Serialization; |
4 | 4 |
5 namespace Implab.ServiceHost.Unity | 5 namespace Implab.ServiceHost.Unity |
6 { | 6 { |
7 public class SerializedElement : AbstractRegistration, ISerializedValue { | 7 public class SerializedElement : InstanceAbstractRegistration { |
8 [XmlAttribute("href")] | 8 [XmlAttribute("href")] |
9 public string Location { get; set; } | 9 public string Location { get; set; } |
10 | 10 |
11 [XmlAttribute("serializedType")] | 11 [XmlAttribute("serializedType")] |
12 public string SerializedType { get; set; } | 12 public string SerializedType { get; set; } |
13 | 13 |
14 | 14 |
15 [XmlAnyElement] | 15 [XmlAnyElement] |
16 public XmlElement[] Content { get; set; } | 16 public XmlElement[] Content { get; set; } |
17 | 17 |
18 string ISerializedValue.TypeName { | 18 public override void Visit(InstanceRegistrationBuilder builder) { |
19 get { | 19 base.Visit(builder); |
20 return string.IsNullOrEmpty(SerializedType) ? RegistrationType : SerializedType; | |
21 } | |
22 } | |
23 | 20 |
24 public string TypeName => throw new NotImplementedException(); | 21 var parameter = new SerializedParameterElement { |
25 | 22 TypeName = SerializedType, |
26 public override void Visit(ContainerBuilder context) { | 23 Location = Location, |
27 context.Visit(this); | 24 Content = Content |
28 } | 25 }; |
29 | 26 parameter.Visit(builder.ValueBuilder); |
30 public XmlReader GetReader() { | |
31 if (!string.IsNullOrEmpty(Location)) | |
32 return XmlReader.Create(Location); | |
33 if (Content != null && Content.Length > 0) | |
34 return Content[0].CreateNavigator().ReadSubtree(); | |
35 | |
36 throw new Exception("No content found, expected XML document"); | |
37 } | |
38 | |
39 public void Visit(InjectionValueBuilder builder) { | |
40 throw new NotImplementedException(); | |
41 } | 27 } |
42 } | 28 } |
43 } | 29 } |