Unity BuildUp方法的问题

时间:2010-03-12 16:19:52

标签: .net unity-container

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

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控件的基本控件中调用此方法。这里应该注入儿童控制的属性:

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

所以在建立股票后,房产仍然是空的。 Resolve方法适用于具有相同容器和配置的IStock。我尝试使用只有一个属性IStock的简单测试类进行构建并获得相同的结果。那么构建会出现什么问题?

1 个答案:

答案 0 :(得分:5)

发现我的代码出了什么问题。问题非常简单:属性IStock应该是公共的,或者在其他情况下,builddup不会用注册值填充它。希望它能在将来帮助某人。