如何在WebApi项目中通过asp.net核心样板框架实现依赖注入

问题描述 投票:0回答:3

我在Web应用程序项目中通过asp.net核心样板框架实现了依赖注入,但是当我想在asp.net核心WebApi项目中通过这个样板实现依赖注入时,在program.cs中调用我的webapimodule时,我收到了这个错误:

无法从程序集'System.Web,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'加载类型'System.Web.HttpPostedFileBase'。

public static void Main(string[] args)
 {
  // this line return error
  AbpBootstrapper.Create<WebApiModule>().Initialize();
  //
  CreateWebHostBuilder(args).Build().Run();
 }

你能给我一些关于如何通过WebApi项目中的asp.net核心样板框架实现依赖注入的示例。

asp.net-core-webapi aspnetboilerplate boilerplate
3个回答
1
投票

System.Web.HttpPostedFileBase存在于.NET Full Framework(不是.NET CORE)!

如果您的项目是.NET CORE,请检查您是否有完整的框架包参考。


1
投票

.net core不运行sys.web管道。因此,您将无法在.net核心中使用该api。

您可以使用IFormFiles进行文件上传。

[HttpPost("UploadFiles")]
public async Task<IActionResult> Post(List<IFormFile> files)
{
long size = files.Sum(f => f.Length);

// full path to file in temp location
var filePath = Path.GetTempFileName();

foreach (var formFile in files)
{
    if (formFile.Length > 0)
    {
        using (var stream = new FileStream(filePath, FileMode.Create))
        {
            await formFile.CopyToAsync(stream);
        }
    }
}

// process uploaded files
// Don't rely on or trust the FileName property without validation.

return Ok(new { count = files.Count, size, filePath});
}

请参阅此链接了解详情 -

https://docs.microsoft.com/en-us/aspnet/core/mvc/models/file-uploads?view=aspnetcore-2.2


0
投票

我发现了问题,我的webApiModule依赖于AbpWebApiModule,它在.NET Core中不支持

© www.soinside.com 2019 - 2024. All rights reserved.