gpt4 book ai didi

c# - 异常(exception)是 : InvalidOperationException - The current type, 是一个接口(interface),无法构造。您是否缺少类型映射?

转载 作者:IT王子 更新时间:2023-10-29 04:09:18 26 4
gpt4 key购买 nike

在我的 Bootstrap 中:

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;
}
}
}
}
}

在我的 Controller 代码中:

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

将鼠标悬停在 mUnityContainer 上,我看到 ISettingsManager 映射到 SettingsManager

但是我得到了错误:

Exception is: InvalidOperationException - The current type, is an interface and cannot be constructed. Are you missing a type mapping?

我也试过

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

但是没用

最佳答案

仅供可能遇到上述错误的其他人(如我)使用。简单来说就是解决方案。

您可能错过了在您的代码中注册您的接口(interface)和类(实现该接口(interface))的注册。

例如如果错误是
当前类型 xyznamespace。Imyinterfacename 是一个接口(interface),无法构造。是否缺少类型映射?

那么你必须在 RegisterUnityConfig 类中注册实现 Imyinterfacename> 方法。使用如下代码

 container.RegisterType<Imyinterfacename, myinterfaceimplclassname>();

关于c# - 异常(exception)是 : InvalidOperationException - The current type, 是一个接口(interface),无法构造。您是否缺少类型映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14549156/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com