diff Implab.ServiceHost/Unity/ValueParameterElement.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
line wrap: on
line diff
--- a/Implab.ServiceHost/Unity/ValueParameterElement.cs	Sat Apr 28 00:11:38 2018 +0300
+++ b/Implab.ServiceHost/Unity/ValueParameterElement.cs	Sat Apr 28 18:48:09 2018 +0300
@@ -1,13 +1,21 @@
+using System.ComponentModel;
 using System.Xml.Serialization;
 
 namespace Implab.ServiceHost.Unity {
-    public class ValueParameterElement : InjectionParameterElement, ITextValue {
-        [XmlText]
+    public class ValueParameterElement : InjectionParameterElement {
         [XmlAttribute("value")]
         public string Value { get; set; }
 
+        [XmlText]
+        public string Text { get; set; }
+
+        string GetTextValue() {
+            return string.IsNullOrEmpty(Value) ? Text : Value;
+        }
+
         public override void Visit(InjectionValueBuilder builder) {
-            builder.Visit(this);
+            var type = builder.ResolveInjectedValueType(TypeName);
+            builder.SetValue(type, TypeDescriptor.GetConverter(type).ConvertFromString(GetTextValue()));
         }
     }
 }
\ No newline at end of file