Mercurial > pub > ImplabNet
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