0

我正在尝试创建一个 .NET Standard 2.0 库,供多个 MVC 应用程序使用,这些应用程序可能是 .NET Framework 或 .NET Core。这个特定的库应该将数据导出为 excel 文件。为此,我需要使用FileContentResultwhich 是Microsoft.AspNetCore.Mvc(Core)的一部分。我没有安装此库的框架版本的选项。

我将如何FileContentResult在我的 .NET Standard 库中实现,以便它可以在 Core 或 Framework 应用程序中工作?

4

2 回答 2

0

您的图书馆不应该使用类似FileContentResult. 单一职责原则规定它应该只处理与其目的实际相关的功能,即从一组数据创建一个 excel 文件。然后,您可以将其作为Stream.

那么,无论使用你的库,都将决定如何处理它Stream。对于 ASP.NET Core 应用程序,您可能会将其作为FileStreamResult. 在另一种情况下,您可能会将其写入文件系统,或将其作为附件添加到电子邮件等。将其绑定到一个狭窄的场景(例如从 Web 应用程序返回文件作为响应)会限制您的库的可用性。

总而言之,您的问题的答案基本上是您一开始就不需要这样做。让您的库专注于它实际负责的内容,并且您不需要这些类型的依赖项。

于 2018-11-07T20:37:05.707 回答
0

我不明白你为什么需要使用FileContentResult. 只需进行处理并在库中返回一个字节数组。在您的 MVC 应用程序中,调用此方法并创建一个FileContentResult.

在这种情况下使用抽象而不是具体类型。你也可以返回一个Stream或定义你自己的抽象。

于 2018-11-07T22:35:50.193 回答