##// END OF EJS Templates
Merge pull request !2 from ImplabNet v3...
Merge pull request !2 from ImplabNet v3 Changes from branch: V3

File last commit:

r289:95896f882995 v3.0.14 v3
r294:abef3ebaa230 merge default
Show More
AbstractRegistration.cs
47 lines | 1.5 KiB | text/x-csharp | CSharpLexer
cin
Added tests for Implab.ServiceHost.Unity configuration loader.
r289 using System;
using System.Xml.Serialization;
using Unity.Lifetime;
using Unity.Registration;
namespace Implab.ServiceHost.Unity
{
/// <summary>
/// Базовая информаци о регистрации в контейнере: тип, имя и время жизни
/// </summary>
public abstract class AbstractRegistration : AbstractContainerItem, IRegistration {
/// <summary>
/// An optional name for a registration in the container
/// </summary>
[XmlAttribute("name")]
public string Name {
get; set;
}
[XmlElement("signleton", typeof(SingletonLifetimeElement))]
[XmlElement("context", typeof(ContextLifetimeElement))]
[XmlElement("container", typeof(ContainerLifetimeElement))]
[XmlElement("hierarchy", typeof(HierarchicalLifetimeElement))]
public LifetimeElement Lifetime {get; set;}
/// <summary>
/// A type specification for the service registration,
/// </summary>
[XmlAttribute("type")]
public string RegistrationType { get; set; }
public virtual LifetimeManager GetLifetime(ContainerBuilder builder) {
return Lifetime?.GetLifetime(builder);
}
public virtual Type GetRegistrationType(Func<string,Type> resolver) {
return resolver(RegistrationType);
}
public virtual Type GetRegistrationType(ContainerBuilder builder) {
return builder.ResolveType(RegistrationType);
}
}
}