Mam scentralizowaną konfigurację StructureMap, do której dołączają różne aplikacje interfejsu użytkownika. Nigdy nie miałem potrzeby modyfikowania tylko "podstawowej" konfiguracji. Uruchomiłem dziś wystąpienie, w którym muszę zmodyfikować/usunąć główną konfigurację dla konkretnej aplikacji. Oczywiście mogłem przenieść główny kod konfiguracji do innej aplikacji, ale zanim to zrobiłem, chciałem mieć pewność, że nie brakuje mi czegoś oczywistego w interfejsie StructureMap. Poniżej znajduje się skrócona wersja mojego podstawowej konfiguracji:Jak mogę zmodyfikować wcześniej skonfigurowaną konfigurację StructureMap?
ObjectFactory.Initialize(cfg =>
{
cfg.Scan(scan =>
{
scan.Assembly("Core");
scan.WithDefaultConventions();
scan.ConnectImplementationsToTypesClosing(typeof(IValidationRule<>));
// more after this....
}
}
W czasie wykonywania tej jednej aplikacji chciałbym usunąć konfigurację dla typów zamykających IValidationRule
, ale trzeba jeszcze wymyślić coś opłacalnego. Wszystkie metody wyrzucania wydają się skupiać wokół znaczenia singleton. Ponieważ nie mam do czynienia z Singleton dodaje nie działa:
ObjectFactory.Model.For(typeof(IValidationRule<>)).EjectAndRemoveAll(); //no work
ObjectFactory.Model.EjectAndRemove(typeof(IValidationRule<>)); //nor does this
Czy istnieje sposób, że mogę zmodyfikować moje konfiguracji StructureMap aby nie patrzeć na IValidationRule
s? Czy mogę wysunąć wystąpienia nie singletonowe z IValidationRule
s? Czy mam inne opcje modyfikacji mojej konfiguracji StructureMap?
Czy jest coś takiego w StructureMap3, gdzie ObjectFactory został uznany za przestarzały? – rexdefuror