Mercurial > pub > ImplabNet
diff Implab.ServiceHost/Unity/FactoryActivator.cs @ 278:6691aff01de1 v3
Implab: added XmlDefaultSeializer (SerializersPool is now obsolete)
Implab.ServiceHost: rewritten TypeReference (added support for nested types), stable API
author | cin |
---|---|
date | Thu, 03 May 2018 09:59:44 +0300 |
parents | |
children | 8714471e8d78 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Implab.ServiceHost/Unity/FactoryActivator.cs Thu May 03 09:59:44 2018 +0300 @@ -0,0 +1,29 @@ +using System; + +namespace Implab.ServiceHost.Unity { + public class FactoryActivator : FactoryAbstractRegistratrion { + + public Type FactoryType { get; set; } + + public string FactoryName { get; set; } + + public new Type RegistrationType { get; set; } + + public override void Visit(FactoryRegistrationBuilder builder) { + base.Visit(builder); + + builder.GetType() + .GetMethod( + nameof(FactoryRegistrationBuilder.SetFactoryDependency) + , new[] { typeof(string) } + ) + .MakeGenericMethod(FactoryType, RegistrationType) + .Invoke(builder, new[] { FactoryName }); + } + + public override Type GetRegistrationType(Func<string, Type> resolver) { + return RegistrationType; + } + + } +} \ No newline at end of file