Я знаю, что конкретные типы могут быть сконфигурированы с Structure карт следующим образом:StructureMap: Настроить конкретные классы во время выполнения?
ForRequestedType<Rule>().TheDefault.Is.Object(new ColorRule("Green"));
Это работает, если вы знаете тип загодя. Я хочу сделать это во время выполнения, и, похоже, нет способа. Может кто-нибудь просветить меня? То, что я хочу сделать что-то вроде следующего: (Это, кажется, не поддерживается структурной карты)
ForRequestedType(typeof(Rule)).TheDefault.Is.Object(new ColorRule("Green"));
Причина этого заключается в том, потому что я работаю на обертку для конфигурации Структурно-карты. И я не буду знать тип раньше времени. Для объекта .Object (новый ColorRule («Зеленый»)) я собираюсь вместо этого передать делегат, который фактически построил бы объект по запросу.
Спасибо за попытку, но я не могу использовать Generics, так как я не буду знать тип во время сборки, только во время выполнения. Кроме того, для моей проблемы мне нужно, чтобы она работала с объектами без интерфейса. однако я попробовал свой метод следующим образом: cfg.For (typeof (IRule)). Используйте (builder), но это приводит к тому, что структурная карта генерирует исключение: Ошибки конфигурации StructureMap: Ошибка: 104 ColorfulRule не может быть подключен к типу IRule. – 7wp
Ничего, я думаю, что мне удалось заставить его работать с модификацией вашего кода. Спасибо, что указал мне в правильном направлении! – 7wp
Рад, что вы его работаете для ваших нужд. Извините, вы не можете использовать интерфейсы, которые значительно упрощают работу с контейнерами и дают вам лучший контроль над вашими абстракциями. – KevM