财产解决政策

时间:2012-06-27 21:06:06

标签: c# .net dependency-injection inversion-of-control unity-container

我需要根据PropertyInfo.Name解析属性注入。该课程看起来像这样

public class Test
{
    [Dependency]
    public Test TestProperty1{ get; set; }
}

我希望能够以某种方式解决TestProperty1这样的 幕后 ,而无需显式重新输入属性名称。

container.Resolve<Test>("TestProperty1")

在致电container.Resolve<Test>()container.BuildUp( new Test()) **

期间

我该怎么做?

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解你想要实现的目标。你想让Unity填充TestProperty1而不告诉它这样做吗?

使用DependencyAttribute不是一个好选择。 This article explains why

要指示Unity向TestProperty1注入值,您必须修改注册码:

container.RegisterType<Test>(new InjectionProperty("TestProperty1"));

对要求解决的调用将返回Test的实例,并填充TestProperty1

如果您有Test的现有实例,则对container.BuildUp()的调用也会为TestProperty1注入一些价值。