Mercurial > pub > ImplabNet
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 277:963b17c275be | 278:6691aff01de1 |
|---|---|
| 1 using System; | |
| 2 | |
| 3 namespace Implab.ServiceHost.Unity { | |
| 4 public class FactoryActivator : FactoryAbstractRegistratrion { | |
| 5 | |
| 6 public Type FactoryType { get; set; } | |
| 7 | |
| 8 public string FactoryName { get; set; } | |
| 9 | |
| 10 public new Type RegistrationType { get; set; } | |
| 11 | |
| 12 public override void Visit(FactoryRegistrationBuilder builder) { | |
| 13 base.Visit(builder); | |
| 14 | |
| 15 builder.GetType() | |
| 16 .GetMethod( | |
| 17 nameof(FactoryRegistrationBuilder.SetFactoryDependency) | |
| 18 , new[] { typeof(string) } | |
| 19 ) | |
| 20 .MakeGenericMethod(FactoryType, RegistrationType) | |
| 21 .Invoke(builder, new[] { FactoryName }); | |
| 22 } | |
| 23 | |
| 24 public override Type GetRegistrationType(Func<string, Type> resolver) { | |
| 25 return RegistrationType; | |
| 26 } | |
| 27 | |
| 28 } | |
| 29 } |
