【发布时间】:2013-11-01 09:10:18
【问题描述】:
我正在使用一个 ServiceStack 请求过滤器,我想检查 requestDTO 参数的属性之一。此参数在运行时是强类型,但在编译时是一个泛型对象。
过滤器将用于多个服务调用,因此 requestDTO 类型将根据调用的不同而改变。因此,我无法对其执行特定的演员表。但是,无论类型如何,requestDTO 对象都将始终具有一个名为“AppID”的字符串属性。我希望访问的正是这个属性。
这是我的代码(目前无法编译):
public override void Execute(ServiceStack.ServiceHost.IHttpRequest req, ServiceStack.ServiceHost.IHttpResponse res, object requestDto)
{
//Check only for non-local requests
if (!req.IsLocal)
{
var app = this._appIDs.Apps.Where(x => x.ID == requestDto.AppID).FirstOrDefault();
var errResponse = DtoUtils.CreateErrorResponse("401", "Unauthorised", null);
var contentType = req.ResponseContentType;
res.WriteToResponse(req, errResponse);
res.EndRequest(); //stops further execution of this request
return;
}
}
此行无法编译:
var app = this._appIDs.Apps.Where(x => x.ID == requestDto.AppID).FirstOrDefault();
我是否需要在此处处理反射才能访问我的对象,还是 ServiceStack 本身内置了某种方法?
【问题讨论】:
标签: c# servicestack