0
我想用它继承的泛型类型来解析具体类型。使用Castle Windsor解决具有泛型类型的接口
这一切似乎工作,但是当我尝试和呼吁解决具体类型的方法,它抛出一个异常:
{“的最佳重载的方法匹配 “MvcApplication2.Utilities.Common .CQRS.GetAlbumsByIdQueryHandler.Execute(MvcApplication2.Utilities.Common.CQRS.GetAlbumsByIdQuery)” 有一些无效参数“}
有谁知道什么可能会造成这个?解决的类型是正确的,我认为这可能与使用动态类型有关?
谢谢。
这里是我的处理程序安装:
container.Register(AllTypes.FromAssemblyContaining<IQueryHandler>()
.BasedOn(typeof (IQueryHandler<>))
.WithService
.AllInterfaces()
.LifestyleSingleton());
,分辨率也是目前:
Type queryHandlerType = typeof (IQueryHandler<>).MakeGenericType(query.GetType());
dynamic queryHandler = _kernal.Resolve(queryHandlerType);
return queryHandler.Handle(query);
及相关类:
public interface IQueryHandler<in TQuery> : IQueryHandler where TQuery : IQuery
{
IQueryResult Handle(TQuery query);
}
public class GetAlbumsByIdQueryHandler : IQueryHandler<GetAlbumsByIdQuery>
{
#region IQueryHandler<GetAlbumsByIdQuery> Members
public IQueryResult Execute(GetAlbumsByIdQuery query)
{
throw new NotImplementedException();
}
#endregion
}