我正在使用城堡温莎进行依赖注入并尝试注入一些通用类型。但是,当我在容器上调用 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)