将对象绑定到autofac中的类,对象可以为null

时间:2014-09-26 03:09:00

标签: c#-4.0 inversion-of-control autofac mvc-mini-profiler

我在我的项目中使用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.

见图片:enter image description here

我需要做什么才能将Autofac与Miniprofiler一起使用?或者我正确地将对象注册到concreteType?

1 个答案:

答案 0 :(得分:3)

尝试注册lambda,使其始终是当前实例,而不是一个特定实例。

builder.Register(
  c => MiniProfiler.Current)
.As<MiniProfiler>();