请问关于c的具体应用场景有哪些?

2026-04-29 01:172阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计333个文字,预计阅读时间需要2分钟。

请问关于c的具体应用场景有哪些?

我在TaskRegistry中定义了一种Task混入类型:`public class TaskRegistry : Registry { public TaskRegistry() { ForRequestedType.TheDefaultIsConcreteTypeStartTasks(); ForRequestedType.TheDefaultIsConcreteType(); } }`

我在TaskRegistry中定义了一些ITask混凝土类型:

请问关于c的具体应用场景有哪些?

public class TaskResigstry : Registry { public TaskResigstry() { ForRequestedType<IBootstrapperTask>().TheDefaultIsConcreteType<StartTasks>(); ForRequestedType<ITask>().TheDefaultIsConcreteType<FirstTask>(); ForRequestedType<ITask>().AddConcreteType<SecondTask>(); ForRequestedType<ITask>().AddConcreteType<ThirdTask>(); } }

还有我的StartTasks

public class StartTasks : IBootstrapperTask { public StartTasks(ITask[] tasks) { foreach(var task in tasks) { task.Run(); } } }

如何使用StructureMap注入ITask []构造函数参数?

谢谢.

如果你想注入一个数组,那么在流畅的界面中有一个方法…

ForRequestedType<IBootStrapperTask>().TheDefault.Is.OfConcreteType<StartTasks>() .TheArrayOf<ITask>().Contains( y => { y.OfConcreteType<Task1>(); y.OfConcreteType<Task2>(); y.OfConcreteType<Task3>(); });

如果你想沿着接受IEnumerable< T>的路线走下去.在你的构造函数中,据我所知,事情开始变得有点复杂.您可以像这样指定和构建构造函数参数: –

ForRequestedType<IBootStrapperTask>().TheDefault.Is.OfConcreteType<StartTasks>() .CtorDependency<IEnumerable<ITask>>().Is(i => { i.Is.ConstructedBy(c => { return new List<ITask> { c.GetInstance<Task1>(), c.GetInstance<Task2>(), c.GetInstance<Task3>() }; }); });

如果你想要所有已注册的类型,你可以创建一个自定义IBuildInterceptor,通过BuildSession上的CreateInstanceArray方法访问所有已注册的类型,但我觉得我可能会走错路.

我很乐意纠正这个更容易:).

本文共计333个文字,预计阅读时间需要2分钟。

请问关于c的具体应用场景有哪些?

我在TaskRegistry中定义了一种Task混入类型:`public class TaskRegistry : Registry { public TaskRegistry() { ForRequestedType.TheDefaultIsConcreteTypeStartTasks(); ForRequestedType.TheDefaultIsConcreteType(); } }`

我在TaskRegistry中定义了一些ITask混凝土类型:

请问关于c的具体应用场景有哪些?

public class TaskResigstry : Registry { public TaskResigstry() { ForRequestedType<IBootstrapperTask>().TheDefaultIsConcreteType<StartTasks>(); ForRequestedType<ITask>().TheDefaultIsConcreteType<FirstTask>(); ForRequestedType<ITask>().AddConcreteType<SecondTask>(); ForRequestedType<ITask>().AddConcreteType<ThirdTask>(); } }

还有我的StartTasks

public class StartTasks : IBootstrapperTask { public StartTasks(ITask[] tasks) { foreach(var task in tasks) { task.Run(); } } }

如何使用StructureMap注入ITask []构造函数参数?

谢谢.

如果你想注入一个数组,那么在流畅的界面中有一个方法…

ForRequestedType<IBootStrapperTask>().TheDefault.Is.OfConcreteType<StartTasks>() .TheArrayOf<ITask>().Contains( y => { y.OfConcreteType<Task1>(); y.OfConcreteType<Task2>(); y.OfConcreteType<Task3>(); });

如果你想沿着接受IEnumerable< T>的路线走下去.在你的构造函数中,据我所知,事情开始变得有点复杂.您可以像这样指定和构建构造函数参数: –

ForRequestedType<IBootStrapperTask>().TheDefault.Is.OfConcreteType<StartTasks>() .CtorDependency<IEnumerable<ITask>>().Is(i => { i.Is.ConstructedBy(c => { return new List<ITask> { c.GetInstance<Task1>(), c.GetInstance<Task2>(), c.GetInstance<Task3>() }; }); });

如果你想要所有已注册的类型,你可以创建一个自定义IBuildInterceptor,通过BuildSession上的CreateInstanceArray方法访问所有已注册的类型,但我觉得我可能会走错路.

我很乐意纠正这个更容易:).