Mineplex2018-withcommit/Website/LOC.Website.Web/Controllers/DependencyResolution/SmDependencyResolver.cs

34 lines
976 B
C#
Raw Normal View History

2014-05-28 20:20:13 +02:00
namespace LOC.Website.Web.DependencyResolution
{
using StructureMap;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
public class SmDependencyResolver : IDependencyResolver {
private readonly IContainer _container;
public SmDependencyResolver(IContainer container) {
_container = container;
}
public object GetService(Type serviceType) {
if (serviceType == null) return null;
try {
return serviceType.IsAbstract || serviceType.IsInterface
? _container.TryGetInstance(serviceType)
: _container.GetInstance(serviceType);
}
catch {
return null;
}
}
public IEnumerable<object> GetServices(Type serviceType) {
return _container.GetAllInstances(serviceType).Cast<object>();
}
}
}