2010-03-25 39 views
0

比方说,你有,需要一个对仿制药的IModel的接口...StructureMap插件 - 更简单的方法?

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

,并实现了该

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

    ... 
} 

没有过于花哨的类。在我的映射CONFIGS,我有一个看起来有点像这样的列表...

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

等。基于DRY,我觉得这是很难做到的事情(现在有7人,很快会达到20人左右)。无论如何要做到这一点“更好”?

回答

1

你可以试试这个......它可能工作。

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