как я могу использовать карту структуры asp.net 3.5

Я новичок в карте структуры, но хочу использовать ее на своем сайте asp.net для инъекции зависимостей, может ли кто-нибудь предложить мне простой пример использования карты структуры для инъекции зависимостей


person Jalpesh Vadgama    schedule 02.09.2009    source источник


Ответы (2)


вам нужно будет сделать что-то вроде этого: -

StructureMapConfiguration
    .ForRequestedType<IResourceA>()
    .TheDefaultIsConcreteType<ResourceB>()
    .CacheBy(InstanceScope.Singleton);

Это указывает StructureMap внедрить ResourceB при запросе ResourceA.

person cw22    schedule 02.09.2009

Структурная карта

Вы можете настроить программно или через файл конфигурации.

Программный пример (есть и другие способы):

StructureMap.StructureMapConfiguration.ForRequestedType<ISomething>().TheDefaultIsConcreteType<ConcreteSomething>();

то вы можете получить экземпляр настроенного типа, используя такой код:

//The concrete type will be ConcreteSomething

ISomething instance = ObjectFactory.GetInstance<ISomething>();

Вы можете сделать это в конфигурационном файле:

<StructureMap MementoStyle="Attribute">
        <DefaultInstance PluginType="Blah.ISomething, Blah.SomethingDLL" PluggedType="Blah.Concrete.ConcreteSomething,Blah.ConcreteDLL"/>
</StructureMap>

а в основном методе или Global.asax вы можете установить эту конфигурацию, сказав:

 StructureMap.ObjectFactory.Initialize(x => { x.PullConfigurationFromAppConfig = true; });

и используйте его так же, как указано выше:

ISomething instance = ObjectFactory.GetInstance<ISomething>();

Если в конкретном классе есть конструктор, в который нужно внедрить экземпляры, и они у вас настроены, конкретные типы будут внедрены фреймворком.

Существуют способы передачи параметров конструкторам, работы с типами Gereric, создания именованных экземпляров, которые настроены с определенными значениями конструктора / свойства. Я использую этот фреймворк, и он мне очень нравится.

person CSharpAtl    schedule 02.09.2009