首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IsMobileDevice()在nopcommerce 4.2通用控制器中的应用

IsMobileDevice()在nopcommerce 4.2通用控制器中的应用
EN

Stack Overflow用户
提问于 2019-06-15 12:41:04
回答 2查看 108关注 0票数 0

我想在公共控制器中使用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)'.

下面是我的代码行,我是如何在公共控制器中使用这个方法的

代码语言:javascript
复制
var mobileDevice = _userAgentHelper.IsMobileDevice();

这是这个领域

代码语言:javascript
复制
private readonly IHttpContextAccessor _httpContextAccessor;

为什么在运行时显示错误?

EN

回答 2

Stack Overflow用户

发布于 2019-06-17 06:37:17

我刚刚在nopCommerce 4.20中检查了一个通用控制器中的IsMobileDevice方法及其工作情况,它将返回真或假,我尝试过使用google

下面是我实现的代码

代码语言:javascript
复制
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);
    }

票数 1
EN

Stack Overflow用户

发布于 2019-06-17 08:23:34

显示的错误指出,没有创建控制器是因为缺少依赖项。因此,您显示的行甚至根本没有被调用;在创建控制器时,错误会在此之前发生。

特别是,您需要一个UserAgentHelper实例,但是Autofac不知道如何获得它。服务依赖项应由它们的接口请求。

简而言之,您应该需要一个IUserAgentHelper,而不是UserAgentHelper

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56610494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档