StructureMap: how to correctly set up default dependencies -


an approach we've taken include structuremap registry in each of our assemblies set's default dependencies.

we use scanner this:

        cfg.scan(scanner =>         {             scanner.thecallingassembly();             scanner.assembly("assembly1");             scanner.assembly("assembly2");             scanner.assembly("assembly3");              scanner.lookforregistries();         }); 

the idea can override default dependencies main application.

the question is, should register these overrides? i.e. before scan?, after scan?

furthermore, order of assemblies specified in scan expression, effect order in dependencies registered. in example above, registries contained in main application (thecallingassembly) overrided in "assembly3"?

many thanks
ben

registries in thecallingassembly overridden register in assembly1, 2 etc.

so if register isomeinterface in of assemblies, 1 in assembly3 default. ones registered in others assemblies can structuremap calling

container.getallinstances<isomeinterface>(); 

this return ilist of registered isomeinterface in structuremap.

if want override ones scanning have configure container again reason. if don't that, last scanned type default.

in example isomeinterface registered in assembly1 default. when @ code, 1 belive someotherclass default. 1 registered in assembly1 default.

var container = new container(x => {             x.scan(scanner =>             {                 scanner.thecallingassembly();                 scanner.assembly("assembly1");                  scanner.lookforregistries();             });              x.for<isomeinterface>().use<someotherclass>();         }); 

so override mappings scanned assemblies. have configure container again example. here someotherclass default isomeinterface.

var container = new container(x => {             x.scan(scanner =>             {                 scanner.thecallingassembly();                 scanner.assembly("assembly1");                  scanner.lookforregistries();             });         });  container.configure(x => x.for<isomeinterface>().use<someotherclass>()); 

Comments

Popular posts from this blog

linux - Using a Cron Job to check if my mod_wsgi / apache server is running and restart -

actionscript 3 - TweenLite does not work with object -

jQuery Ajax Render Fragments OR Whole Page -