我想在公共控制器中使用IsMobileDevice()。但是当我使用这种方法时,它显示了错误。
1.在激活特定注册过程中发生错误。有关详细信息,请参阅内部异常。注册: Activator = CommonController (ReflectionActivator),Services = Nop.Web.Controllers.CommonController,Lifetime = Autofac.Core.Lifetime.CurrentScopeLifetime,共享=无,所有权= OwnedByLifetimeScope -->在类型'Nop.Web.Controllers.CommonController‘上找到的任何构造函数都不能用可用的服务和参数来调用:
不能解析构造函数'Void .ctor(Nop.Core.Domain.Security.CaptchaSettings,Nop.Core.Domain.Common.CommonSettings,Nop.Web.Factories.ICommonModelFactory,Nop.Services.Directory.ICurrencyService,Nop.Services.Logging.ICustomerActivityService,Nop.Services.Common.IGenericAttributeService,Nop.Services.Localization.ILanguageService,Nop.Services.Localization.ILocalizationService,Nop.Services.Logging.ILogger,Nop.Core.IStoreContext,Nop.Web.Framework.Themes.IThemeContext,Nop.Services.Vendors.IVendorService,Nop.Core.IWorkContext,Nop.Services.Messages.IWorkflowMessageService,Nop.Core.Domain.Localization.LocalizationSettings,Nop.Core.Domain.Common.SitemapSettings,Nop.Core.Domain.Common.SitemapXmlSettings,Nop.Core.Domain.StoreInformationSettings,Nop.Core.Domain.Vendors.VendorSettings,Nop.Services.Helpers.UserAgentHelper)'.
下面是我的代码行,我是如何在公共控制器中使用这个方法的
var mobileDevice = _userAgentHelper.IsMobileDevice();这是这个领域
private readonly IHttpContextAccessor _httpContextAccessor;为什么在运行时显示错误?
发布于 2019-06-17 06:37:17
我刚刚在nopCommerce 4.20中检查了一个通用控制器中的IsMobileDevice方法及其工作情况,它将返回真或假,我尝试过使用google
下面是我实现的代码
private readonly IUserAgentHelper _userAgentHelper;
public CommonController(IUserAgentHelper userAgentHelper)
{
_userAgentHelper = userAgentHelper;
}
public virtual IActionResult ContactUs()
{
var model = new ContactUsModel();
var mobileDevice = _UserAgentHelper.IsMobileDevice();
if(mobileDevice)
return true;
model = _commonModelFactory.PrepareContactUsModel(model, false);
return View(model);
}

发布于 2019-06-17 08:23:34
显示的错误指出,没有创建控制器是因为缺少依赖项。因此,您显示的行甚至根本没有被调用;在创建控制器时,错误会在此之前发生。
特别是,您需要一个UserAgentHelper实例,但是Autofac不知道如何获得它。服务依赖项应由它们的接口请求。
简而言之,您应该需要一个IUserAgentHelper,而不是UserAgentHelper。
https://stackoverflow.com/questions/56610494
复制相似问题