如果每次请求只需要一个数字,在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关机?