.net - Unity BuildUp 方法的问题

标签 .net unity-container

我正在为我的项目(版本 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/

相关文章:

c# - Infragisitcs ultrawingrid 列选择器和列过滤器

java - 字符串实习真的有用吗?

c# - 如何只锁定 .NET 事务中的相关行

c# - 使用 UnityContainer 进行动态 IOC 映射 - 如何实现?

c# - .NET 中的依赖注入(inject)与示例 c#

c# - WPF Prism 模块错误解决 IUnityContainer

c# - 是否可以返回异常?

c# - 具有逆变类型参数和 Unity 容器的泛型

c# - 基于路由参数的子容器注册

c# - 从控制台应用程序生成随机 JPG 图像