Как разрешить зависимый объект с единицей с зарегистрированным именем, установленным для свойства первичного объекта? - PullRequest
0 голосов
/ 03 февраля 2011

У меня небольшая проблема с разрешением типов в Unity.

Вот пример того, что я хочу сделать:

public class MainClass
{
    public void MainMethod()
    {
        UnityContainerHelper.DefaultContainer.Resolve<FirstClass>(new ParameterOverride("Property1", "SomeValue"));
        UnityContainerHelper.DefaultContainer.Resolve<FirstClass>(new ParameterOverride("Property1", "OtherValue"));
    }
}


public class FirstClass
{
    [InjectionMethod]
    public void DoSomething(SecondClass sc)
    {

    }
}

public class SecondClass
{
    public string Property1 { get; set; }
    [InjectionMethod]
    public void DoSomething()
    {
        UnityContainerHelper.DefaultContainer.Resolve<ThirdClass>(this.Property1);
    }
}

public class ThirdClass
{
}

РЕДАКТИРОВАТЬ: Есть ли способ настроить Unity для разрешения моего третьего класса по имени, когда я разрешаю свой первый класс?

Проблема заключается в том, что я хочу явно разрешить FirstClass, а по конфигурации сказать Unity, что "использовать этот ThirdClass" при разрешении SecondClass.Я ясно?

Я пытаюсь сделать «слой разрешения», чтобы сделать это, но мне интересно, есть ли простой способ сделать это.

1 Ответ

1 голос
/ 16 февраля 2011

Вы можете сказать Unity использовать Factory Methods для разрешения ваших классов так, как вы хотите ...

посмотрите на: https://bitbucket.org/ctavares/unityfactoryconfig/downloads я получил от: http://unity.codeplex.com/discussions/219565?ProjectName=unity

...