我真的被这个难倒了。我理解错误的消息,但找不到任何错误。
消息是:
可以使用可用的服务和参数调用在“我的控制器对象”类型上找到“公共绑定标志”的构造函数: 无法解析构造函数'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正在工作并完美地解决所有问题,但运行时却无法找到它????
如果需要包含其他代码,请告诉我,我会在那里得到它。
谢谢
答案 0 :(得分:2)
检查您是否忘记从VideoService
注册某些依赖项,样本:
builder.RegisterType<EventPublishier>().As<IEventPublisher>();
builder.RegisterType<CacheManager>().As<ICacheManager>();