使用Unity注入的自定义WebViewPage的属性时出现NullReferenceException

时间:2014-04-24 19:47:39

标签: c# asp.net-mvc razor dependency-injection unity-container

我编写了一个自定义的WebViewPage实现,其中包含一些我已注释过的额外属性:

[Dependency]
public Tenant CurrentTenant { get; set; }

在继承自此的视图中(共享/ _Layout,如果重要),我引用了@CurrentTenant.Name

我已经编写了一个IViewPageActivator的自定义实现,它为Create创建了这个:

var obj = this._container.Resolve(type);
return obj;

我在这里放了一个断点,可以看到这个被调用,当我检查obj时,该属性正在被正确注入...但是当我尝试访问CurrentTenant的属性时页面抛出NullReferenceException !这是怎么回事?

编辑:如果我尝试将信息注入“常规”视图而不是布局,我发现这种行为不是问题。

1 个答案:

答案 0 :(得分:0)

当我更好地理解我要找的东西时,我发现someone else有这个问题。

无论如何,看起来这里的选项都没有吸引力。我将它插入到_Layout.cshtml的顶部,但是如果有人知道更好的方法,我会喜欢这样做:

@{
  this.CurrentTenant = UnityConfig.GetConfiguredContainer.Resolve<Tenant>(); //and so on
 }