Wyjątkiem jest: InvalidOperationException - bieżący typ jest interfejsem i nie można go zbudować. Czy brakuje mapowania typu?

W moim bootstraperze:

namespace Conduit.Mam.ClientServices.Common.Initizliaer
{
    public static class Initializer
    {
        private static bool isInitialize;
        private static readonly object LockObj = new object();
        private static IUnityContainer defaultContainer = new UnityContainer();

        static Initializer()
        {
            Initialize();
        }

        public static void Initialize()
        {
            if (isInitialize)
                return;

            lock (LockObj)
            {
                IUnityContainer container = defaultContainer;

                //registering Unity for MVC
                DependencyResolver.SetResolver(new UnityDependencyResolver(container));

                //registering Unity for web API
                //  GlobalConfiguration.Configuration.DependencyResolver = new Unity.WebApi.UnityDependencyResolver(container);

                #region managers
                container.RegisterType<ISettingsManager, SettingsManager>();

                container.RegisterType<IMamDataManager, MamDataManager>();

                container.RegisterType<IAppsDataManager, AppsDataManager>();
                #endregion

                if (!isInitialize)
                {
                    isInitialize = true;
                }
            }
        }
    }
}

w kodzie mojego kontrolera:

ISettingsManager sm = mUnityContainer.Resolve<ISettingsManager>();

unosząc się na mUnityContainer widzęISettingsManager jest mapowany naSettingsManager

ale wtedy pojawia się błąd:

Wyjątkiem jest: InvalidOperationException - bieżący typ jest interfejsem i nie można go zbudować. Czy brakuje mapowania typu?

Próbowałem też

ISettingsManager sm = (ISettingsManager)mUnityContainer.Resolve<>(typeof(ISettingsManager));

ale bezużyteczny

questionAnswers(7)

yourAnswerToTheQuestion