2016-06-23 12 views
0

Hier ist der Code, den ich habe:Wie kann ich ein zufälliges Objekt generieren, das in allen Methoden in einem Controller verfügbar ist?

namespace WebRole.Controllers 
{ 

    [RoutePrefix("api/WordAPI")] 
    public class WordAPIController : BaseController 
    { 

     [AuthorizeRoles(ERole.Super, ERole.Admin, ERole.WordAdmin)] 
     [HttpPost] 
     [Route("Wapi/{source}")] 
     public IHttpActionResult Wapi(string source) 
     { 

Was ich tun ist, möchte ein zufälliges Objekt jedes Mal zu erzeugen, dass ein Verfahren es dann in der Methode aufgerufen wird und in der Lage zu verwenden.

So würde Ich mag so etwas tun:

Random random = new Random(); 

Und hat es überall verfügbar in meinem Code.

Irgendwelche Vorschläge, wo ich zufällig platzieren und verwenden könnte, so dass es für alle Methoden verfügbar ist?

Antwort

1

Eine Möglichkeit, dies zu tun, besteht darin, eine Klassenvariable zu deklarieren, die im Controller-Konstruktor instanziiert wird.

namespace WebRole.Controllers 
{ 
    [RoutePrefix("api/WordAPI")] 
    public class WordAPIController : BaseController 
    { 
     private Random random; 
     public WordAPIController() 
     { 
      this.random = new Random(); 
     } 

     [AuthorizeRoles(ERole.Super, ERole.Admin, ERole.WordAdmin)] 
     [HttpPost] 
     [Route("Wapi/{source}")] 
     public IHttpActionResult Wapi(string source) 
     { 

Bedeutet dies, dass jede Anfrage an den Controller die gleiche zufällige verwenden? No, oder höchstwahrscheinlich nicht. Die Controller werden pro Anfrage erstellt und somit wird für jede Anfrage ein Zufallsgenerator erstellt.

Verwandte Themen