ValueParameterElement.cs
20 lines
| 671 B
| text/x-csharp
|
CSharpLexer
cin
|
r289 | using System.ComponentModel; | |
using System.Xml.Serialization; | |||
namespace Implab.ServiceHost.Unity { | |||
public class ValueParameterElement : AbstractInjectionParameter { | |||
[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())); | |||
} | |||
} | |||
} |