我正在尝试创建一个.NET Standard 2.0库,该库将由多个MVC应用程序使用,这些应用程序可能是.NET Framework或.NET Core。该特定库应该将数据导出为excel文件。为此,我需要使用FileContentResult
(Core)的一部分Microsoft.AspNetCore.Mvc
。我没有安装该库的Framework版本的选项。
我该如何在.NET Standard库中实现FileContentResult
,以便使其在Core或Framework应用程序中均可工作?
答案 0 :(得分:0)
您的图书馆不应使用FileContentResult
之类的东西。单一责任原则规定,它仅应处理与其目的实际相关的功能,即根据某些数据集创建excel文件。然后,您可以将其作为Stream
从库中返回。
那么,无论使用什么库,都将决定如何处理该Stream
。对于ASP.NET Core应用程序,您可以将其返回为FileStreamResult
。在另一种情况下,您可以将其写入文件系统,或将其添加为电子邮件的附件等。将其绑定到一个狭窄的情况下,例如从Web应用程序返回文件作为响应,将限制库的可用性。>
总之,对于您的问题的回答基本上是您根本不需要这样做。让您的库专注于它真正负责的是什么,而您不需要这些类型的依赖项。
答案 1 :(得分:0)
我不明白为什么您需要使用FileContentResult
。只需进行处理,然后在库中返回一个字节数组。在您的MVC应用程序中,调用此方法并创建一个FileContentResult
。
在这种情况下,请使用抽象代替具体类型。您还可以返回Stream
或定义自己的抽象。