view Implab.ServiceHost/Unity/ValueParameterElement.cs @ 280:f07be402ab02 v3

Added Trace<T>.Debug(...) method for debug messages Added ContainerBuilde.LoadConfig(Uri) method
author cin
date Fri, 25 May 2018 19:15:26 +0300
parents 6691aff01de1
children e0916ddc9950
line wrap: on
line source

using System.ComponentModel;
using System.Xml.Serialization;

namespace Implab.ServiceHost.Unity {
    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(InjectionParameterBuilder builder) {
            var type = builder.ResolveInjectedValueType(TypeName);
            builder.SetValue(type, TypeDescriptor.GetConverter(type).ConvertFromString(GetTextValue()));
        }
    }
}