.net MvcMiniProfiler是否需要web应用程序才能工作,或者可以在纯库中使用,例如在单元测试中?

.net MvcMiniProfiler是否需要web应用程序才能工作,或者可以在纯库中使用,例如在单元测试中?,.net,mvc-mini-profiler,.net,Mvc Mini Profiler,我真的很喜欢我所看到的。我希望在非web应用程序(windows服务、单元测试等)上使用SQL监控功能。这是可能的,还是需要HTTP环境?明显的区别是结果交付,但如果我可以将结果序列化为JSON或类似的格式,那就好了 我创建了一个简单的单元测试,试图让它工作,但是MiniProfiler.Current似乎总是空的,即使在执行MiniProfiler.Start()之后也是如此 我是不是找错人了?好问题。核心(探查器实例和连接包装器)未绑定到http。如果您可以创建自己的实例,那么所有这些都应该

我真的很喜欢我所看到的。我希望在非web应用程序(windows服务、单元测试等)上使用SQL监控功能。这是可能的,还是需要HTTP环境?明显的区别是结果交付,但如果我可以将结果序列化为JSON或类似的格式,那就好了

我创建了一个简单的单元测试,试图让它工作,但是
MiniProfiler.Current
似乎总是空的,即使在执行
MiniProfiler.Start()
之后也是如此

我是不是找错人了?

好问题。核心(探查器实例和连接包装器)未绑定到http。如果您可以创建自己的实例,那么所有这些都应该可以工作。然而,所有的UI代码都是围绕web应用程序编写的

我知道有人在WPF、winforms等中使用它,所以它应该工作得很好。然而,你也需要找出一个逻辑上的“我衡量的事物单位”。在web应用程序中,这是显而易见的:一个请求

请注意,
MiniProfiler.Current
纯粹是一种方便(您可以将实例放在任何地方),但我很确定我们可以创建您自己的抽象(而不是http上下文)

(转到检查代码)

啊,是的,我们来了:

public static MiniProfiler Current
{
  get
  {
    MiniProfiler.Settings.EnsureProfilerProvider();
    return MiniProfiler.Settings.ProfilerProvider.GetCurrentProfiler();
  }
}

因此,您可以提供自己的
配置文件提供程序
,然后再提供
。当前的
应该可以工作。

非常出色。我现在明白了,直到WebRequestProfilerProvider,我们才看到对HTTP上下文的引用,这是在一些不做任何HTTP假设的父抽象下面。谢谢