all services are singleton by default.

This commit is contained in:
Keivan Beigi 2013-05-29 18:33:20 -07:00
commit 763df726f0
12 changed files with 5 additions and 34 deletions

View file

@ -86,9 +86,9 @@ namespace NzbDrone.Common.Composition
_container.Register(registrationType, instance);
}
public void RegisterAll(Type registrationType, IEnumerable<Type> implementationList)
public void RegisterAllAsSingleton(Type registrationType, IEnumerable<Type> implementationList)
{
_container.RegisterMultiple(registrationType, implementationList);
_container.RegisterMultiple(registrationType, implementationList).AsSingleton();
}
public bool IsTypeRegistered(Type type)

View file

@ -64,22 +64,12 @@ namespace NzbDrone.Common.Composition
var impl = implementations.Single();
Trace.WriteLine(string.Format("Registering {0} -> {1}", contractType.FullName, impl.Name));
if (impl.HasAttribute<SingletonAttribute>())
{
Container.RegisterSingleton(contractType, impl);
}
else
{
Container.Register(contractType, impl);
}
Container.RegisterSingleton(contractType, impl);
}
else
{
Trace.WriteLine(string.Format("Registering {0} -> {1}", contractType.FullName, implementations.Count));
Container.RegisterAll(contractType, implementations);
Container.RegisterAllAsSingleton(contractType, implementations);
}
}

View file

@ -24,7 +24,7 @@ namespace NzbDrone.Common.Composition
IEnumerable<T> ResolveAll<T>() where T : class;
IEnumerable<object> ResolveAll(Type type);
void Register(Type registrationType, object instance);
void RegisterAll(Type registrationType, IEnumerable<Type> implementationList);
void RegisterAllAsSingleton(Type registrationType, IEnumerable<Type> implementationList);
bool IsTypeRegistered(Type type);
IEnumerable<Type> GetImplementations(Type contractType);

View file

@ -1,8 +0,0 @@
using System;
namespace NzbDrone.Common.Composition
{
public class SingletonAttribute : Attribute
{
}
}