StructureMap 202 - почему? - PullRequest
       12

StructureMap 202 - почему?

0 голосов
/ 28 января 2010

ОК, я пытаюсь установить свойство для типа, который я регистрирую в SM.

Вот код из реестра в одном из моих компонентов. это реестр добавляется во время настройки из консольного приложения. Когда я пытаюсь получить доступ к свойству EndorsementSpecs экземпляра AutoMandatoryEndorsementAggregator объект, я получаю 202. Что Интересно, что я могу позвонить GetAllInstances> () из моего консольное приложение, и оно решает просто отлично. Есть ли что-то о доступ к этому коду из OnCreation, который вызывает 202? я можно увидеть все, что я ожидаю в WhatDoIHave (). Я также пробовал TypeInterceptor с теми же результатами.

//register all open generics
cfg.ConnectImplementationsToTypesClosing(typeof
(MandatoryEndorsementSpecBase<>));

ForSingletonOf<IMandatoryEndorsementAggregator<AutoPolicy>>()
                    .Use<AutoMandatoryEndorsementAggregator>()
                    .OnCreation((context, x) =>
                    {

                        var specs =
context.GetAllInstances<MandatoryEndorsementSpecBase<AutoPolicy>>();
                        x.EndorsementSpecs = specs;
                    })
                    ; 

1 Ответ

0 голосов
/ 30 января 2010

Извините, что отклонил ваши реальные вопросы, но вы просто пытаетесь внедрить все экземпляры MandatoryEndorsementSpecBase в AutoMandatoryEndorsementAggregatory? Если это так, вы, вероятно, можете обойтись, просто сделав его параметром конструктора, чтобы все они автоматически вводились.

public AutoMandatoryEndorsementAggregatory(MandatoryEndorsementSpecBase<AutoPolicy>[] endorsementSpecs){
  EndorsementSpecs = endorsementSpecs;
}
...