我是 ASP.NET 和 C# 的新手。当我向没有构造函数的控制器方法发出 GET 请求时,我得到 200 响应。例如,没有构造函数的控制器[Route("api/[controller]")]public class ApiController : Controller{ protected static BusinessLogic BusinessLogic;[HttpGet] public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; }但是当我实例化构造函数时,我得到了 500 响应。我错过了什么?控制器[Route("api/[controller]")]public class ApiController : Controller{ protected static BusinessLogic BusinessLogic; public ApiController(BusinessLogic businessLogic) { BusinessLogic = businessLogic; }[HttpGet] public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; }商业逻辑public class BusinessLogic{ private readonly Encryption _encryption; private readonly string UserID; private readonly string Password; public BusinessLogic(string Key, string Url, string UserId, string Password) { _encryption = new Encryption(Key); _UserID = UserId; _Password = Password; }
2 回答
胡说叔叔
TA贡献1804条经验 获得超8个赞
静态业务对象是一种非标准的方式来做你想做的事,但它是有效的,但需要在方法中使用互斥锁来保证线程安全。大多数人会通过构造函数中的依赖注入每个线程实例化业务对象,但是500错误可能是因为没有依赖注入框架来实例化和注入业务对象。参见Microsoft unity或castleWindsor。200 是成功,但我不确定您是如何从 Controller 继承的,这是一个 MVC 类,而不是应该用于 webapi 方法的 Apicontroller。
- 2 回答
- 0 关注
- 217 浏览
添加回答
举报
0/150
提交
取消