C# 在StructureMap注册表配置中调用类的方法

C# 在StructureMap注册表配置中调用类的方法,c#,dependency-injection,structuremap,C#,Dependency Injection,Structuremap,我忍不住想,有一种方法比StructureMap注册表中的当前代码更好 For<ISchedulerFactory>().Use(() => new StdSchedulerFactory()); For<IScheduler>().Use(() => new StdSchedulerFactory().GetScheduler()); For()。使用(()=>newstdschedulerfactory()); For()。使用(()=>new

我忍不住想,有一种方法比StructureMap注册表中的当前代码更好

  For<ISchedulerFactory>().Use(() => new StdSchedulerFactory());
  For<IScheduler>().Use(() => new StdSchedulerFactory().GetScheduler());
For()。使用(()=>newstdschedulerfactory());
For()。使用(()=>new StdSchedulerFactory().GetScheduler());
有没有办法让它使用以前注册的类型并从中调用方法?(GetScheduler()位于IsSchedulerFactory界面上)

是的,您可以执行以下操作:

For<IScheduler>().Use(c => c.GetInstance<ISchedulerFactory>().GetScheduler());
For().Use(c=>c.GetInstance().GetScheduler());

效果很好!我知道一定有更好的办法。谢谢你的帮助!