2012-05-29 22 views
7

我有一个自定义模块Module1。在这个模块中,我引用了另一个自定义模块Module2。上周一切正常。错误 - 找不到任何构造函数与'Orchard.Environment.AutofacUtil.DynamicProxy2.ConstructorFinderWrapper'

今天早上我做了一个新鲜的重新安装果园。从那以后,我一直在收到这个错误。

与“Orchard.Environment.AutofacUtil.DynamicProxy2.ConstructorFinderWrapper”发现式“模块1”的建设者都不能在可用的服务和参数来调用:无法解析构造“太虚.ctor的参数“单词数”(。 ..)”。

任何想法如何解决这个错误?

谢谢。

回答

4

这意味着无法找到某个接口的实现。有几件事情可能发生:一个模块可能无法编译,或者你忘了从IDependency派生一个接口。

2

我有同样的问题。看起来我引用了具体类而不是构造函数中的接口。

 public OrderService(
      IRepository<Order> orderRepository, 
      ProductService productService, 
      ProductCategoryService productCategoryService 
     ) 

而不是

 public OrderService(
      IRepository<Order> orderRepository, 
      IProductService productService, 
      IProductCategoryService productCategoryService 
     ) 
3

我知道现在的职位是很老,只是链接任何可能的错误,可能导致上述问题...这是我的错误。

我只是忘了从仪表板启用引用的模块。 当然,这并不妨碍我添加一个项目引用和模块依赖项,使代码编译完美。

问题是,我引用的模块不包含任何内容类型定义。这只是一个模块,旨在收集一些功能和常用工具。这就是为什么我忘记启用它。

干杯。

1

如果您手动启用模块,则可能会出现此错误。确保删除App_Data \ cache.dat并回收应用程序池。

0

清单是:

  1. 接口从IDependency获得
  2. 实现派生从接口
  3. 构造函数引用接口
  4. 建立所有,并检查是否所有引用的模块编译
  5. 启用管理模块面板

例如:



    public class myController : Controller{ 
     private readonly IMyService _myService; 

     public myController(
      IMyService myService 
     ) { 
     _myService = myService; 
     } 
    } 



    public interface IMyService : IDependency 
    { 
     int GetOne(); 
    } 



    public class MyService: IMyService 
    { 
     public MyService() 
     { // init code } 

     public int GetOne() 
     { return 1; } 
    }