servicestack,C#,servicestack" /> servicestack,C#,servicestack" />

C# 我可以将依赖项注入ServiceStack请求筛选器吗?

C# 我可以将依赖项注入ServiceStack请求筛选器吗?,c#,servicestack,C#,servicestack,我可以成功地将依赖项注入ServiceStack服务,但现在需要将依赖项注入请求过滤器。然而,这似乎不是以同样的方式工作 这是我的过滤器(它只是检查源IP是否在已批准的列表中;我正试图注入此列表): 公共类CheckIPFilter:RequestFilterAttribute { 私有只读IList_IPAddresses=新列表(); 公共CheckIPFilter(){} 公共CheckIPFilter(IList IP地址) { _IP地址=IP地址; } 公共覆盖无效执行(Servic

我可以成功地将依赖项注入ServiceStack服务,但现在需要将依赖项注入请求过滤器。然而,这似乎不是以同样的方式工作

这是我的过滤器(它只是检查源IP是否在已批准的列表中;我正试图注入此列表):

公共类CheckIPFilter:RequestFilterAttribute
{
私有只读IList_IPAddresses=新列表();
公共CheckIPFilter(){}
公共CheckIPFilter(IList IP地址)
{
_IP地址=IP地址;
}
公共覆盖无效执行(ServiceStack.ServiceHost.IHttpRequest请求、ServiceStack.ServiceHost.IHttpResponse请求、对象请求)
{
如果(!\u IPAddresses.Contains(req.UserHostAddress))
{
var errResponse=DtoUtils.CreateErrorResponse(“401”,“未授权”,null);
var responseDto=DtoUtils.CreateResponseDto(requestDto,newresponsestatus(“401”,“未经授权”);
var contentType=req.ResponseContentType;
var serializer=EndpointHost.AppHost.ContentTypeFilters.GetResponseSerializer(contentType);
res.ContentType=ContentType;
var serializationContext=新的HttpRequestContext(req、res、responseDto);
序列化程序(serializationContext、responseDto、res);
res.EndRequest();//停止进一步执行此请求
返回;
}
}
}
这是my global.asax中的内容:

var IPAddresses = new List<string>() 
   { "99.99.99.99", "99.99.99.99", "99.99.99.99", "99.99.99.99" };

container.Register<IList<string>>(IPAddresses);
var ipaddress=new List()
{ "99.99.99.99", "99.99.99.99", "99.99.99.99", "99.99.99.99" };
容器。注册表(IP地址);
_IP地址始终为空


我想我一定错过了一些基本的东西。有没有更好的方法来解决这个问题?

对过滤器属性使用属性注入而不是构造函数注入,因为它们是克隆的,公共属性是自动连接的,而不是像从IOC和自动连接中实例化的所有其他内容一样创建的

var IPAddresses = new List<string>() 
   { "99.99.99.99", "99.99.99.99", "99.99.99.99", "99.99.99.99" };

container.Register<IList<string>>(IPAddresses);