gpt4 book ai didi

.net - Unity BuildUp 方法的问题

转载 作者:行者123 更新时间:2023-12-01 12:00:20 25 4
gpt4 key购买 nike

我正在为我的项目(版本 1.2.0.0)使用 Unity App Block。我的 ascx 控件使用的 Unity Container BuildUp 方法有问题。这是一些代码(非常简单)

public class BaseUserControl<T>:UserControl where T:class
{
protected override void OnInit(EventArgs e)
{
InjectDependencies();
base.OnInit(e);
}

protected virtual void InjectDependencies()
{
var context = HttpContext.Current;
if (context == null)
{
return;
}
var accessor = context.ApplicationInstance as IContainerAccessor;
if (accessor == null)
{
return;
}
var container = accessor.Container;
if (container == null)
{
throw new InvalidOperationException("No Unity container found");
}
container.BuildUp<T>(this as T);

}
}

此方法在我的解决方案中的 ascx 控件的基本控件中调用。这里是应该在子控件中注入(inject)的属性:

 [Dependency]
private IStock Stock { get; set; }

所以在构建 Stock 属性之后仍然是空的。 Resolve 方法适用于具有相同容器和配置的 IStock。我已经尝试使用只有一个属性 IStock 的简单测试类进行构建,并得到了相同的结果。那么堆积有什么问题呢?

最佳答案

发现我的代码有什么问题。问题很简单:属性 IStock 应该是公开的,否则在其他情况下,buildup 不会用注册值填充它。希望它能帮助将来的人。

关于.net - Unity BuildUp 方法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2434073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com