Mercurial > pub > ImplabNet
annotate Implab.ServiceHost/Unity/SerializedElement.cs @ 275:6fefd5811b9b v3
refactoring
| author | cin |
|---|---|
| date | Fri, 27 Apr 2018 16:57:30 +0300 |
| parents | 22629bf26121 |
| children | 963b17c275be |
| rev | line source |
|---|---|
|
273
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
1 using System; |
|
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
2 using System.Xml; |
|
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
3 using System.Xml.Serialization; |
|
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
4 |
|
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
5 namespace Implab.ServiceHost.Unity |
|
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
6 { |
| 274 | 7 public class SerializedElement : AbstractRegistration, ISerializedValue { |
|
273
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
8 [XmlAttribute("href")] |
|
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
9 public string Location { get; set; } |
|
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
10 |
|
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
11 [XmlAttribute("serializedType")] |
|
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
12 public string SerializedType { get; set; } |
|
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
13 |
|
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
14 |
|
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
15 [XmlAnyElement] |
|
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
16 public XmlElement[] Content { get; set; } |
| 274 | 17 |
| 18 string ISerializedValue.TypeName { | |
| 19 get { | |
| 20 return string.IsNullOrEmpty(SerializedType) ? RegistrationType : SerializedType; | |
| 21 } | |
| 22 } | |
| 23 | |
| 275 | 24 public string TypeName => throw new NotImplementedException(); |
| 25 | |
| 274 | 26 public override void Visit(ContainerBuilder context) { |
|
273
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
27 context.Visit(this); |
|
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
28 } |
|
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
29 |
| 274 | 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(); | |
|
273
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
35 |
| 274 | 36 throw new Exception("No content found, expected XML document"); |
|
273
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
37 } |
| 275 | 38 |
| 39 public void Visit(InjectionValueBuilder builder) { | |
| 40 throw new NotImplementedException(); | |
| 41 } | |
|
273
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
42 } |
|
79110a16cab7
Working on Unity xml configuration: Refactoring in progress
cin
parents:
diff
changeset
|
43 } |
