RegistrationBuilder.cs
42 lines
| 1.3 KiB
| text/x-csharp
|
CSharpLexer
cin
|
r274 | using System; | |
using System.Collections.Generic; | |||
using System.ComponentModel; | |||
using System.Linq; | |||
using System.Xml.Serialization; | |||
using Implab.Xml; | |||
using Unity.Injection; | |||
cin
|
r277 | using Unity.Lifetime; | |
cin
|
r274 | using Unity.Registration; | |
namespace Implab.ServiceHost.Unity { | |||
cin
|
r277 | /// <summary> | |
/// Базовый класс для формирования записей в контейнере, созволяет указать время жизни для записи | |||
/// </summary> | |||
cin
|
r274 | public abstract class RegistrationBuilder { | |
public Type RegistrationType { | |||
get; | |||
private set; | |||
} | |||
cin
|
r277 | internal LifetimeManager Lifetime { get; set; } | |
cin
|
r274 | protected RegistrationBuilder(Type registrationType) { | |
RegistrationType = registrationType; | |||
} | |||
cin
|
r277 | ||
internal void Visit(SingletonLifetimeElement simgletonLifetime) { | |||
Lifetime = new SingletonLifetimeManager(); | |||
} | |||
internal void Visit(ContainerLifetimeElement containerLifetime) { | |||
Lifetime = new ContainerControlledLifetimeManager(); | |||
} | |||
internal void Visit(HierarchicalLifetimeElement hierarchicalLifetime) { | |||
Lifetime = new HierarchicalLifetimeManager(); | |||
} | |||
internal void Visist(ContextLifetimeElement contextLifetime) { | |||
Lifetime = new PerResolveLifetimeManager(); | |||
} | |||
cin
|
r274 | } | |
} |