小编ksy*_*ium的帖子

Castle Windsor - 汽车不满足实现类型的通用约束

我正在使用城堡温莎进行依赖注入并尝试注入一些通用类型。但是,当我在容器上调用 resolve 时,出现以下错误:

类不满足实现类型的通用约束。

Car在这个例子中,我目前正在传递一个简单的类型。

public class CreateRequestInstance<T> where T : class, ICreateRequestInstance<T>
{
    private IRequestObject<T> _IRequestObject;

    public CreateRequestInstance(IRequestObject<T> requestObject)
    {
        this._IRequestObject = requestObject;
    }

    public TReturn CreateRequest<TReturn>(string provider, string type, string token, T request,
        string revision, string errorCode, string errorMessage)
    {
        _IRequestObject.Provider = provider;
        _IRequestObject.Type = type;
        _IRequestObject.Token = token;
        _IRequestObject.Request = request;
        _IRequestObject.ErrorCode = errorCode;
        _IRequestObject.ErrorMessage = errorMessage;

        return (TReturn)Convert.ChangeType(_IRequestObject, typeof(IRequestObject<T>));
    }  
}
Run Code Online (Sandbox Code Playgroud)

这是我的安装程序:

public void Install(IWindsorContainer container, IConfigurationStore store)
{
    container
        .Register(Component
            .For(typeof(ICreateRequestInstance<>))
            .ImplementedBy(typeof(CreateRequestInstance<>))
            .LifestyleTransient())
         .Register(Component …
Run Code Online (Sandbox Code Playgroud)

c# generics castle-windsor castle interface

4
推荐指数
1
解决办法
538
查看次数

标签 统计

c# ×1

castle ×1

castle-windsor ×1

generics ×1

interface ×1