2013-12-20 84 views
0

我试图访问productservice在我OrderService像下面,但它会抛出错误没有为此对象定义的无参数构造函数。 Nopcommerce 2.40

此对象定义无参数的构造函数。说明:执行当前Web 请求期间发生未处理的异常 。请查看堆栈跟踪以获取有关 错误以及源代码的更多信息。

异常详细信息:System.MissingMethodException:无参数 为此对象定义的构造函数。

//Many repositories are here just like 3 belows 
private readonly IRepository<Store> _storeRepository; 

private readonly IRepository<ProductPicture> _productPictureRepository; 

private readonly IRepository<Picture> _picture; 

private readonly IProductService _productService; 

//private readonly IProductService _productService = EngineContext.Current.Resolve<IProductService>(); 

    //tried above line but with no success 
//Constructor for OrderService goes below 
    public OrderService(IRepository<Store> storeRepository, 
     IProductService productService 
    ) 
    { 
     _storeRepository = storeRepository; 
     _productService= productService; 
    } 

如果我对productService删除参考,应用效果很好。我在网上和nopcommerce论坛上搜索了很多,但没有找到任何解决方案。

任何帮助?

+1

试着把一个像这个'公共OrderService(){}'这样的空构造函数,让我知道 –

+0

同样的问题仍然存在 –

+0

这是你的OrderService还是你正在修改nop的?从IProductService的链中进一步依赖的东西可能依赖于IOrderService,创建一个通常会引发错误的循环引用。 – AndyMcKenna

回答

2

问题是IProductService的实现没有提供无参数构造函数或public ProductServiceImpl() { },因此无法通过依赖注入框架解决。

当你注册IProductService确保你指定了一个构造函数来为已注册的实现使用或创建一个空构造函数。

相关问题