Как зарегистрировать универсальные интерфейсы в StructureMap

Если сторонние расширения позволяются, то C5 и Microsoft CCR (см. это сообщение в блоге для краткого введения), должен - знают.

.Net's дополнений C5, несколько испытывающий недостаток в библиотеке наборов (не Набор???), и CCR делает параллельное программирование легче (я слышу, что это должно быть объединенным с Параллельными Расширениями).

5
задан AwkwardCoder 17 July 2009 в 15:59
поделиться

1 ответ

Я бы выбрал что-то вроде

// in IToaster.cs
public interface IToaster<T> {}

// in your StructureMap registry
Scan(x =>
{
    x.Assembly("MVCDemo");
    x.Assembly("MVCDemo.Infrastructure");
    x.Assembly("MVCDemo.Services");

    x.AddAllTypesOf(typeof(IToaster<>))
});

Ключевым моментом здесь является то, что этот подход использует неуниверсальную перегрузку AddAllTypesOf (). В противном случае это действительно становится липким виджетом.

См. Эту ветку SO для хорошего обсуждения этих проблем: StructureMap Авторегистрация для общих типов с использованием Scan

Это должно помочь, если только в вашем подходе нет чего-то. m отсутствует - не стесняйтесь обновлять, если это так.

10
ответ дан 13 December 2019 в 22:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: