我在我的项目中使用MiniProfiler。要获取MiniProfiler的实例,我必须使用以下内容:
var profiler = MiniProfiler.Current;
这个探查器对象是我在创建类时希望AutoFac传递给每个MiniProfiler类型的对象。示例我执行了以下操作:
var profiler = MiniProfiler.Current;
builder.RegisterInstance(profiler);
在我的控制器中我使用以下方式:
public ListingsController(IDataFetcher DataFetcher, ILog log, MiniProfiler profiler)
{
_DataFetcher = DataFetcher;
_log = log;
_profiler = profiler;
}
问题是探查器实例可以为null,当我运行代码时出现以下服务器错误。
Value cannot be null.
见图片:
我需要做什么才能将Autofac与Miniprofiler一起使用?或者我正确地将对象注册到concreteType?
答案 0 :(得分:3)
尝试注册lambda,使其始终是当前实例,而不是一个特定实例。
builder.Register(
c => MiniProfiler.Current)
.As<MiniProfiler>();