Ctor参数没有被解决?

时间:2013-12-04 18:09:21

标签: c# asp.net-mvc-3 autofac

我真的被这个难倒了。我理解错误的消息,但找不到任何错误。

消息是:


可以使用可用的服务和参数调用在“我的控制器对象”类型上找到“公共绑定标志”的构造函数: 无法解析构造函数'Void .ctor的参数'Services.Video.IVideoService videoService'(...构造函数中的参数列表......


因此,据我所知,控制器无法解析videoService参数...即。调用它。

我的服务现在非常简单。刚刚开始创建它。

public partial interface IVideoService
{
    /// <summary>
    /// Gets all videos
    /// </summary>
    /// <returns>Videos</returns>
    IList<Videos> GetAllVideos();

}

接口实现

public VideoService(ICacheManager cacheManager, IRepository<Videos> videoRepository, IRepository<VideoCategories> videoCategoryRepository, IEventPublisher eventPublisher)
{
    this._cacheManager = cacheManager;
    this._videoRepository = videoRepository;
    this._videoCategoryRepository = videoCategoryRepository;
    _eventPublisher = eventPublisher;
}

public virtual IList<Videos> GetAllVideos()
{
     var query = _videoRepository.Table
     .Join
     (
         _videoCategoryRepository.Table,
         v => v.Id,
         vc => vc.Id,
         (v, vc) => new { Videos = v, VideoCategories = vc }
     )
     .Select(vid => vid.Videos);

     return query.ToList();
 }

控制器的构造函数(缩写很长):

public MyController(ICategoryService categoryService, IVideoService videoService,.....)
{ ...code }

我已经清理过&amp;重建,关闭VS&amp;重新开放。我无法弄清楚为什么它没有解决。 Intellisense正在工作并完美地解决所有问题,但运行时却无法找到它????

如果需要包含其他代码,请告诉我,我会在那里得到它。

谢谢

1 个答案:

答案 0 :(得分:2)

检查您是否忘记从VideoService注册某些依赖项,样本:

builder.RegisterType<EventPublishier>().As<IEventPublisher>();

builder.RegisterType<CacheManager>().As<ICacheManager>();