在 C# .NET 应用程序的整个生命周期中使用 DecisionTree
Use a DecisionTree throughout whole lifetime in C# .NET application
我有一个网络应用程序正在开发中。我正在考虑使用 DecisionTree 来分析某些事情。
必须创建DecisionTree 并将在不同的阶段使用。例如。在控制器中,某些东西将是 compared/checked 并且将返回某个视图。
我是否在我的应用程序开始时创建此 DecisionTree 并以某种方式在我的所有控制器中获取对它的引用?还是我每次使用它时都要重新创建它?我猜参考方法是最好的方法,因为树是在消耗内存等的数据表上创建的。处理
听起来是单身人士的好去处。
如果您以前没有使用过单例模式,可能值得一读。
http://en.wikipedia.org/wiki/Singleton_pattern
如果你想在 Global.aspx 的 Application_Start 中创建单例,如果你想在 Web 应用程序启动时设置一些初始状态。
如果您正在使用 som IoC 容器 (f.e。Ninject) 只需将此 class 注册为单例并设置为控制器的依赖项。
f.e.
kernel.Bind<IShogun>().To<Shogun>().InSingletonScope();
object scopes from Ninject documentation
并通过构造函数注入将其设置为 MVC 控制器中的依赖项:
MyController(IShogun shogun)
{ ... }
或通过属性注入:
[Inject]
IShogun { get; set; }
如果您没有使用 IoCC - 请开始:)
我更喜欢 Ninject 但你在 IoCC 中有很大的选择。
我有一个网络应用程序正在开发中。我正在考虑使用 DecisionTree 来分析某些事情。
必须创建DecisionTree 并将在不同的阶段使用。例如。在控制器中,某些东西将是 compared/checked 并且将返回某个视图。
我是否在我的应用程序开始时创建此 DecisionTree 并以某种方式在我的所有控制器中获取对它的引用?还是我每次使用它时都要重新创建它?我猜参考方法是最好的方法,因为树是在消耗内存等的数据表上创建的。处理
听起来是单身人士的好去处。
如果您以前没有使用过单例模式,可能值得一读。
http://en.wikipedia.org/wiki/Singleton_pattern
如果你想在 Global.aspx 的 Application_Start 中创建单例,如果你想在 Web 应用程序启动时设置一些初始状态。
如果您正在使用 som IoC 容器 (f.e。Ninject) 只需将此 class 注册为单例并设置为控制器的依赖项。
f.e.
kernel.Bind<IShogun>().To<Shogun>().InSingletonScope();
object scopes from Ninject documentation
并通过构造函数注入将其设置为 MVC 控制器中的依赖项:
MyController(IShogun shogun)
{ ... }
或通过属性注入:
[Inject]
IShogun { get; set; }
如果您没有使用 IoCC - 请开始:) 我更喜欢 Ninject 但你在 IoCC 中有很大的选择。