如何生成控制器中所有方法都可用的随机对象?

时间:2016-06-23 04:48:55

标签: asp.net asp.net-web-api

这是我的代码:

import Alamofire
import Foundation

class DataRetriever {
    private var sessionID: String?
    private let baseUrl: String?
    private let endPoints = ["session": "/session", "population": "/population/"]

    init() {
        let dict = NSDictionary(contentsOfFile: NSBundle.mainBundle().pathForResource("Config", ofType: "plist")!)
        baseUrl = dict!["baseUrl"] as? String
        setSessionID()
    }

    private func generateNewSessionID(completionHandler: (NSError?, String?) -> ()) {
         let params = [ "stuff": "stuff", "morestuff": "moreStuff" ]

        Alamofire.request(.POST, baseUrl! + endPoints["session"]!, parameters: params, encoding:ParameterEncoding.URL, headers: getSessionHeaders()).responseJSON { response in
            switch response.result{
            case .Success:
                completionHandler(nil, String(response.response!))
            case .Failure(let error):
                completionHandler(error, nil)
            }
        }
    }

    func setSessionID() {
        generateNewSessionID() { (error, session) in
            if error != nil {
                // handle error
            } else {
                self.sessionID = session
            }
        }

        print(self.sessionID!)
    }
}

我想要做的是每次调用方法时生成一个随机对象,然后能够在方法中使用它。

所以我想做这样的事情:

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)
        {

并在我的代码中随处可用。

有关我可以放置和使用随机位置的任何建议,以便所有方法都可以使用吗?

1 个答案:

答案 0 :(得分:1)

这样做的一种方法是声明一个在控制器构造函数中实例化的类变量。

php_value upload_max_filesize 50M
php_value post_max_size 50M
php_value max_execution_time 500
php_value max_input_time 500

这是否意味着对控制器的每个请求都使用相同的随机数? No,或者很可能不是。根据请求创建控制器,因此也为每个请求创建随机。