如果每次請求只需要一個數字,在ASP.NET MVC應用程序中生成隨機數的正確方法是什麼?根據MSDN的說法,爲了獲得足夠的質量隨機性,必須使用一次創建的單個System.Random對象生成多個數字。由於爲MVC中的每個請求創建了一個控制器類的新實例,因此我無法使用在控制器的構造函數中爲Random對象初始化的私有字段。那麼,我應該創建和存儲Random對象的哪個部分?目前,我把它存儲在控制器類的靜態字段,懶洋洋地初始化它在使用它的操作方法:MVC應用程序中的隨機數生成
public class HomeController : Controller
{
...
private static Random random;
...
public ActionResult Download()
{
...
if (random == null)
random = new Random();
...
}
}
由於「隨機」字段可以由控制器類的多個實例訪問,是它如果兩個實例試圖同時初始化它的值,可能會損壞它的值?還有一個問題:我知道靜態的生命週期是應用程序的生命週期,但是在MVC應用程序的情況下它是什麼?它是從IIS啓動直到IIS關機?