- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的演示代码很简单
using Microsoft.Practices.Unity;
using System;
public interface IDecorator
{
string GetA();
}
public class Decorations:IDecorator
{
public string GetA()
{
return "temp";
}
}
public class Base
{
}
public class Derive : Base
{
[Dependency]
public IDecorator DerivedDecorations { get; set; }
}
public class Program
{
private static void Main(string[] args)
{
Base bd = new Derive(); // here is the point
var container = new UnityContainer();
container.RegisterType<IDecorator, Decorations>();
container.BuildUp(bd); // bd.DerivedDecorations is null
Console.WriteLine("Press any key to continue...");
Console.ReadKey();
}
}
Derive 类中的 DerivedDecorations
在上述情况下无法解析
如果我们将代码更改为 Derive bd = new Derive();
则没有问题
我不清楚原因,因为我们使用的是工厂模式,谁能给我一些原因吗?
最佳答案
看看通用的 BuildUp-Method过载。
Unity 使用指定的 T 类型来检查它的属性并确定要注入(inject)的依赖项。
在您的情况下,您没有明确指定 T 而是依赖 type inference ,它解析为类“Base”(因为参数变量类型是“Base”类型)。
因此,要么相应地声明您的变量,要么通过 non-generic version 尝试另一种方法:
container.BuildUp(typeof(Derived), bd);
或
container.BuildUp(bd.GetType(), bd); //which resolves to "Derived"
这在给定的示例中目前意义不大,但我希望为简单起见对您的示例进行分解。
关于c# - 带有 Unity Buildup<T> 问题的工厂模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43785352/
我正在为我的项目(版本 1.2.0.0)使用 Unity App Block。我的 ascx 控件使用的 Unity Container BuildUp 方法有问题。这是一些代码(非常简单) publ
我想知道在使用 Unity IOC 时何时使用 buildup 以及何时使用 resolve。 我什么时候叫拆解? 谢谢 最佳答案 当您希望 Unity 容器构造实例时使用 Resolve(当您需要它
我的演示代码很简单 using Microsoft.Practices.Unity; using System; public interface IDecorator { string Ge
在我的一个类中,我有一个用于单元测试的内部构造函数和一个我的应用程序调用的私有(private)构造函数。内部有我的依赖项的参数,而私有(private)构造函数没有参数并调用 BuildUp 以使用
我正在尝试使用 VBA 在 Microsoft Word 2010 中自动生成方程式并将其插入 Excel 中,因为它不支持 oMath 对象。问题出在 oMath.BuildUp 方法中。它不会像手
function main() { $('.btnBack').click(function () { var currentSlide = $('.active-
我使用的是 Microsoft Unity 2.0,拦截扩展没有按预期工作。 考虑这两行代码: MyUnityContainer.Configure().SetDefaultInterceptorFo
我已经为 ASP.NET Web 窗体应用程序自动设置了依赖注入(inject)。我使用 Unity 并使用 [Dependency] 属性根据页面请求构建服务。 使用 UnityHttpModule
InjectProperties 的简单注入(inject)器函数已标记为已弃用,并将在未来的版本中删除。我如何才能在 Caliburn.Micro 的 BuildUp 覆盖中使用它?该框架通过 Io
我有一个名为 mainContainer 的容器。在这个容器中,我想创建一个缩略图库。不幸的是,当我修改我的 CSS 时,我遇到了一些问题,我有一些白色背景颜色而不是我的 mainContainer
我是一名优秀的程序员,十分优秀!