2015-05-03 26 views
1

我在開發中有一個web應用程序。我正在考慮使用DecisionTree來分析某些事情。在C#.NET應用程序的整個生命週期中使用DecisionTree

DecisionTree必須創建並將用於不同的情況。例如。在控制器中將會比較/檢查某個東西,並返回某個視圖。

我是否在我的應用程序開始時創建此DecisionTree,並以某種方式在我的所有控制器中獲取對它的引用?或者我每次使用它時都會重新創建它?我猜參考方法是最好的一個,因爲一個樹被創建在一個數據表,它會消耗內存等..處理

+0

這是一個ASP網絡應用程序嗎? –

+0

這是一個ASP.NET MVC應用程序。 – ManyQuestions

+2

可能要將該標記添加到您的問題。 –

回答

2

如果您使用som IoC Container(f.e. Ninject),只需將該類註冊爲singleton並將其設置爲控制器的依賴項即可。

f.e.

kernel.Bind<IShogun>().To<Shogun>().InSingletonScope(); 

object scopes from Ninject documentation

並將其設置爲在MVC控制器dependenty,通過構造注射:

MyController(IShogun shogun) 
{ ... } 

或通過注射屬性:

[Inject] 
IShogun { get; set; } 


如果您不使用IoCC,請開始:) 我更喜歡Ninject,但您在IoCC中有相當多的選擇。

+0

我現在確實在使用Ninject。好主意使用它。我會看看更多的答案,然後選擇我認爲最好的答案。 – ManyQuestions

+0

接受此,因爲它使用Ninject和單身人士。 – ManyQuestions

3

聽起來像一個單身人士的好地方。

如果你以前沒有使用Singleton模式,可能值得閱讀。

http://en.wikipedia.org/wiki/Singleton_pattern

你可以initally創建Global.aspx的的Application_Start單身,如果你想,如果你想設置一些初始狀態的Web應用程序啓動時。

相關問題