我有一个接口,这样的事情:StructureMap - 扫描 - 以基本实现和具体的通用接口
interface IGenericSetupViewModel<T>
我再有这样的默认implemtation,像这样
class GenericSetupViewModel<T> : IGenericSetupViewModel<T>
对于一些具体类我有这样的具体实施:
class ContractSetupViewModel : GenericSetupViewModel<Contract>
现在我想要使StructureMap返回正确的情况下,要求一个
ObjectFactory.GetInstance<GenericSetupViewModel<Contract>();
当我想获得ContractSetupViewModel退回,要求做别的事情的时候,我 想获得的
GenericSetupViewModel<T>
我试过一个实例这样做:
StructureMap.ObjectFactory.Configure(x =>
{
x.Scan(y =>
{
y.TheCallingAssembly();
y.AddAllTypesOf(typeof(IGenericSetupViewModel<>));
y.ConnectImplementationsToTypesClosing(typeof(IGenericSetupViewModel<>));
});
});
然而,这导致我总是得到一个GenericSetupViewModel和永不ContractSetupViewModel。 我不想指定所有特定的viewmodels,所以有无论如何,我可以让这个扫描工作?
你有没有试过如果你要求'IGenericSetupViewModel'会发生什么? –
flq
2010-04-12 08:23:40
同样的事情,如果我问GenericSetupViewModel –
2010-04-12 08:59:55