我正在使用.netcore 2.1、实体框架和Razor页面创建游戏管理系统。
我在microsoft.aspnetcore.mvc命名空间中有一个控制器,它连接到第三部分API并从中检索数据。
控制器有许多返回不同内容的不同方法,但它们都共享以下共同代码:
public static GameSystemManager.LoginInfo gamerManagerLogin = new GameSystemManager.LoginInfo()
{
UserKey = "myAPIkey",
Password = "xyzxyz"
};
public static GameSystemManager.GamerLister gamerLists = new GameSystemManager.GamerLister
{
MaxNumberResults = 15,
PageNumber = 0
};
因此,一个控制器方法可能如下所示:
public IActionResult GetAllGames(Guid Id)
{
public static GameSystemManager.LoginInfo gamerManagerLogin = new GameSystemManager.LoginInfo()
{
UserKey = "myAPIkey",
Password = "xyzxyz"
};
public static GameSystemManager.GamerLister gamerLists = new GameSystemManager.GamerLister
{
MaxNumberResults = 15,
PageNumber = 0
};
response = GameSystemManager.ListGames(gamerManagerLogin, gamerLists, Id);
return View(response.Results);
}
由于多个控制器和方法使用相同的代码,我决定创建一个基本控制器,并将该代码放在其中,并让其他控制器从中继承。
这是我的基站控制器:
public class BaseController : Controller
{
public static GameSystemManager.LoginInfo gamerManagerLogin = new GameSystemManager.LoginInfo()
{
UserKey = "myAPIkey",
Password = "xyzxyz"
};
public static GameSystemManager.GamerLister gamerLists = new GameSystemManager.GamerLister
{
MaxNumberResults = 15,
PageNumber = 0
};
}
以下是我的使用方法:
public class GameListController : BaseController
{
public IActionResult GetAllGames(Guid Id)
{
response = GameSystemManager.ListGames(gamerManagerLogin, gamerLists, Id);
return View(response.Results);
}
}
这是我的appsettings.json:
"GamerManager": {
"UserKey": "myAPIkey",
"Password": "xyzxyz"
},
这是我的GamerManagerConfig类:
public class GamerManagerConfig
{
readonly string UserKey = "myAPIkey";
readonly string Password = "xyzxyz";
}
但是,它不起作用。我刚从API中得到一个超时错误。它
只有
当我直接在controller方法中使用代码时工作,如上面的示例。
我认为这可能与初始化有关。可能需要在方法中直接初始化它?我不确定。
任何洞察都将不胜感激!
谢谢!