2010-03-25 7 views
0

Disons que vous avez une interface de IModel qui prend une paire de génériques ...Plugins StructureMap - façon plus facile?

public interface IModel<TOne, TTwo> 
{ 
    TOne ConvertToOne(TTwo two); 
    TTwo ConvertToTwo(TOne one); 
} 

et une classe qui implémente cette

public class OneTwo : IModel<SomethingOne, SomethingTwo> 
{ 
    SomethingOne ConvertToOne(SomethingTwo two) 
    { //zomg! nothing exciting! 
    } 

    ... 
} 

Rien trop de fantaisie. Dans mes configurations de mappage, j'ai une liste qui ressemble un peu à ceci ...

For<IModel<SomethingOne, SomethingTwo>>().Use<OneTwo>(); 
For<IModel<SomeOne, SomeTwo>>().Use<AnotherClass>(); 

et ainsi de suite. Basé sur DRY, je pense que c'est la façon la plus difficile de le faire (il y en a 7 maintenant, bientôt 20). Quoi qu'il en soit, pour faire cela "plus mieux"?

Répondre

1

Vous pourriez essayer ceci ... cela pourrait fonctionner.

ObjectFactory.Initialize(x => 
{ 
    x.Scan(scan => 
    { 
     scan.AssemblyContainingType<Something>(); 
     scan.ConnectImplementationsToTypesClosing(typeof(IModel<,>)); 
    } 
} 
Questions connexes