如何在StructureMap 3中进行Setter注入

5

我已经更新到StructureMap 3,现在无法使用FillAllPropertiesOfType进行setter注入。

它是否已被弃用?我应该使用什么替代方法?

1个回答

5

我刚遇到了同样的问题。看起来现在处理这个问题的新方法是通过 Registry.PoliciesExpression

public interface IInjectable
{
    string Test();
}

public class Injectable : IInjectable
{
    public string Test()
    {
        return this.GetType().ToString();
    }
}

public class InjectTarget
{

    public IInjectable Injectable
    {
        get;
        set;
    }

}

static class Program
{
    static void Main()
    {

        ObjectFactory.Configure(x =>
        {
            //Setter injection
            x.Policies.FillAllPropertiesOfType<IInjectable>().Use<Injectable>();

            //Standard registration
            x.For<IInjectable>().Use<Injectable>();
            x.For<InjectTarget>().Singleton().Use<InjectTarget>();
        });

        var test = ObjectFactory.GetInstance<InjectTarget>();

        Console.WriteLine(test.Injectable.Test()); //WindowsFormsApplication3.Injectable
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接