0
asp.net 핵심 mvc 웹 응용 프로그램에서 swagger를 사용하고 싶습니다. 우리가 컨트롤러에 필요한 인스턴스를 주입하기 위해 IoC를 사용하기 때문에, swagger는 swagger UI를 구축 할 수 없습니다. 생성자를 제거하면 올바르게 작동합니다.컨트롤러에서 생성자가있는 Swagger API 설명이 작동하지 않습니다.
누구나 컨트롤러 내부에서 생성자를 사용하여 아이디어를 얻거나 해결 방법을 가지고 있습니까?
[Route("TestNamesapce/TestService/2017/08/[controller]")]
public class TestController: FullController
{
private readonly IMaintenanceTaskProvider _provider;
private readonly MaintenanceServiceConfiguration _config;
private ILog _log;
private MessageWorker _worker;
/// <summary>
///
/// </summary>
/// <param name="log">The log.</param>
/// <param name="eventing">The eventing.</param>
/// <param name="worker">The worker.</param>
/// <param name="options">The options.</param>
/// <param name="context">The context.</param>
public TestController(ILog log, IEventingClient eventing, IFileManagementClient fileManagement, MessageWorker worker, IMaintenanceTaskProvider provider, IOptions<Configuration> options) : base(log, eventing, fileManagement)
{
_config = options.Value;
_log = log;
_provider = provider;
_worker = worker;
}
/// <summary>
/// Gets the internal license identifier.
/// </summary>
/// <returns></returns>
[HttpGet("GetInternalLicenseId")]
public string GetInternalLicenseId()
{
return "abcdefghijklmnop";
}
코드를 보겠습니다. –
그 이유가 확실합니까? 모든 컨트롤러에는 매개 변수없는 생성자가 없으며 종속성 삽입을 사용합니다. 생성자는 실제로 swagger.json 파일에도 사용되지 않습니다. 그것은 ApiExplorer를 사용합니다 (적어도 ASP.NET 코어에서는) – Tseng