我编写了一个自定义的WebViewPage实现,其中包含一些我已注释过的额外属性:
[Dependency]
public Tenant CurrentTenant { get; set; }
在继承自此的视图中(共享/ _Layout,如果重要),我引用了@CurrentTenant.Name
。
我已经编写了一个IViewPageActivator的自定义实现,它为Create创建了这个:
var obj = this._container.Resolve(type);
return obj;
我在这里放了一个断点,可以看到这个被调用,当我检查obj
时,该属性正在被正确注入...但是当我尝试访问CurrentTenant的属性时页面抛出NullReferenceException !这是怎么回事?
编辑:如果我尝试将信息注入“常规”视图而不是布局,我发现这种行为不是问题。
答案 0 :(得分:0)
当我更好地理解我要找的东西时,我发现someone else有这个问题。
无论如何,看起来这里的选项都没有吸引力。我将它插入到_Layout.cshtml的顶部,但是如果有人知道更好的方法,我会喜欢这样做:
@{
this.CurrentTenant = UnityConfig.GetConfiguredContainer.Resolve<Tenant>(); //and so on
}