Как автоматически установить свойства модели представления с помощью StructureMap

У меня есть интерфейс ITranslateStuff и статический класс и метод с общим параметром, который ограничен (где class, ITranslateStuff, new()).

string translation = Translator.TranslateStuff<ITranslateStuff>();

В зависимости от того, какую реализацию ITranslateStuff я передаю, метод возвращает другую строку.

У меня есть ViewModels с множеством разных свойств, которые возвращают реализации ITranslateStuff, например:

public class ExampleViewModel
{
    public string OtherStuff {get; set; }
    public string TranslateStuffExample1 Translations { get; set; }
    public ExampleViewModel2 SubModel {get; set; }
}

public class ExampleViewModel2
{
    public string MoreStuff { get; set; }
    public string TranslateStuffExample2 Translations { get; set; }
}

где и DoStuffExample1, и DoStuffExample2 реализуют ITranslateStuff.

В настоящее время я заполняю все эти свойства таким кодом:

model.Translations = Translator.TranslateStuff<TranslateStuffExample1>();

model.SubModel.Translations = Translator.TranslateStuff<TranslateStuffExample2>();

В проекте мы используем StructureMap. Я хочу избежать установки всех свойств в моей модели представления вручную с помощью одного и того же вызова статического метода. У меня есть ActionFilter, где я устанавливаю общие свойства в своей модели представления, и я думал, что хочу сделать это и в фильтре действий.

Я пытался найти что-то в StructureMap, что может сделать это для меня.

Как я могу это решить?


person Andreas    schedule 21.11.2013    source источник
comment
Если я правильно понимаю вашу проблему, вы должны посмотреть на это codebetter.com/jeremymiller/2009/01/19/   -  person AOZ    schedule 21.11.2013
comment
Это не сработало. Я принял ответ Вейлона. Спасибо за предложение.   -  person Andreas    schedule 03.01.2014


Ответы (1)


Вы захотите использовать «установочную инъекцию».

http://docs.structuremap.net/ConstructorAndSetterInjection.htm#section4

person Waylon Martinez    schedule 20.12.2013
comment
На данный момент я жестко кодирую зависимости везде. SetterInjection звучит как решение. Я попробую. Спасибо! - person Andreas; 03.01.2014