我有一个WebApi方法,它返回一个IQueryable的RavenDB文档.调用者需要知道可能结果的数量(因为实际结果是有限的/分页的).
所以,我的WebApi方法结束时有类似的东西:
HttpContext.Current.Response.AddHeader("Total-Result-Count",
resultsStats.TotalResults.ToString())
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用,因为IQueryable还没有实际执行 - 所以统计数据将是空的.
在查询执行之后,如何推迟 stats响应标头的填充?
[UPDATE]
在控制器操作执行后,我尝试应用ActionFilter来捕获结果......但似乎在实际枚举IQueryable之前调用了ActionFilter ...
public class CountQueryableResultsActionFilter : ActionFilterAttribute
{
public override void OnActionExecuted(HttpActionExecutedContext filterContext)
{
var controllerStats = filterContext.ActionContext.ControllerContext.Controller as IControllerStatistics;
System.Web.HttpContext.Current.Response.AddHeader("Total-Result-Count", controllerStats.TotalResults.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
如果,我在WebApi方法结束时调用了"IQueryable.ToArray()",那么Linq查询会立即执行,它会生成统计信息,一切正常 - 但这会阻止用户应用自己的OData过滤器等等...
我正在C#中执行raven查询,并使用Where()和Search()扩展方法.我需要这两个功能,因为我只需要返回具有特定Guid字段的索引,以及存在于文本正文中的文本.不幸的是,Where扩展方法似乎与Search扩展方法不兼容.当我将它们组合在一起时,我得到一个像这样的Lucene查询:
Query: FeedOwner:25eb541c\-b04a\-4f08\-b468\-65714f259ac2 MessageBody:<<request*>>
Run Code Online (Sandbox Code Playgroud)
这似乎完全忽略了标准的'MessageBody'部分 - 所以我在'自由文本'中使用的约束并不重要,它不使用它.
我已经单独使用'搜索'进行了测试,并且它可以工作 - 所以它本身就是自由文本搜索的问题 - 只需将两者结合起来.
我想编写一个shell扩展来完全自定义特定文件夹的显示,如组装缓存查看器(浏览到c:\ windows\assembly,你会明白我的意思).哪些COM接口负责提供这些钩子?我的"观众"将用C#编写......
谢谢!
我正在构建一个网站,我希望使用CSS媒体查询响应.我也在使用Knockout-js在客户端上模拟我的UI - 它真的很快就可以使用了.
我发现的是,例如,我需要渲染一些我在knockout-js模板中定义的UI ...这导致一些DIV和SPAN为每个"列表项"呈现文本.
当用户缩小屏幕时,布局会通过媒体查询响应"简化"用户界面 - 删除更详细的信息,为最重要的内容腾出空间.
我知道我可以使用css将我的标签"分组"为"详细级别",然后使用媒体查询来关闭屏幕空间减少时的"更高级别的冗长" - 这将有效地确定HTML元素不可见.
然而 - 我的模板变得非常复杂,非常快 - 因为简单地关闭div可能还不够.在我看来,我可以更有意义地定义一个模板,其中包括一个css-media-query"规则",因此当用户更改浏览器大小时,模板实际上是交换的.这将导致更清晰的HTML模板和更简单的CSS.
所以,我的问题是 - 有没有人考虑过这个问题,或许通过一些最佳实践解决了这个问题 - 也许我在KnockoutJs中缺少一些可以解决这个问题的功能?
谢谢!
前段时间我回忆起一个工具的早期发布视频演示,该工具允许(从Visual Studio内部)检查一段代码的历史记录.例如,右键单击某个方法并选择"查看历史记录",然后查看该方法的更改时间.谁能回忆一下这可能是什么产品?
我正在捕获到Opus的实时音频流,无论我为音频采样率选择什么,都可以获得48khz的输出。
这是我的命令行
./ffmpeg -f alsa -ar 16000 -i sysdefault:CARD = CODEC -f alsa -ar 16000 -i sysdefault:CARD = CODEC_1 -filter_complex join = inputs = 2:channel_layout = stereo:map = 0.1-FR \ | 1.0- FL,setsets = expr = N / SR / TB -ar 16000 -ab 64k -c:a opus -vbr off -compression_level 5 output.ogg
这是ffmpeg的回应:
输出#0,ogg,到'output.ogg':元数据:编码器:Lavf57.48.100流#0:0:音频:opus(libopus),16000 Hz,立体声,s16,延迟104,填充0,64 kb / s (默认)元数据:编码器:Lavc57.54.100 libopus
但是,ffmpeg似乎在撒谎,因为再次分析文件时,我得到:
输入#0,ogg,来自'output.ogg':持续时间:00:00:03.21,开始:0.000000,比特率:89 kb / s流#0:0:音频:作品,48000 Hz,立体声,s16,延迟156 ,padding 0元数据:ENCODER:Lavc57.54.100 libopus
我尝试了很多采样率排列,简化为单个音频输入等-总是得到相同的结果。
有任何想法吗?
ravendb ×2
c# ×1
ffmpeg ×1
flutter ×1
iqueryable ×1
javascript ×1
jquery ×1
opus ×1
tfs ×1
wcf-web-api ×1