Создание библиотеки .NET Standard, которая использует другие библиотеки MVC - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь создать библиотеку .NET Standard 2.0, которая будет использоваться несколькими приложениями MVC, которые могут быть .NET Framework или .NET Core.Эта конкретная библиотека должна экспортировать данные в виде файла Excel.Для этого мне нужно использовать FileContentResult, который является частью Microsoft.AspNetCore.Mvc (Core).У меня нет возможности установить версию этой библиотеки для платформы Framework.

Как мне реализовать FileContentResult в моей библиотеке .NET Standard, чтобы она работала как в приложении Core, так и в приложении Framework?

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Я не понимаю, почему вам нужно , чтобы использовать FileContentResult. Просто сделайте свою обработку и верните байтовый массив в вашу библиотеку. В вашем приложении MVC вызовите этот метод и создайте FileContentResult.

Используйте абстракции вместо конкретных типов в таких ситуациях. Вы также можете вернуть Stream или определить собственную абстракцию.

0 голосов
/ 07 ноября 2018

Ваша библиотека не должна работать с чем-то вроде FileContentResult. Принцип единой ответственности предполагает, что он должен обрабатывать только те функции, которые действительно имеют отношение к его назначению, а именно создание файла Excel из некоторого набора данных. Затем вы можете вернуть это из вашей библиотеки как Stream.

Что бы вы ни использовали, ваша библиотека решит, что делать с этим Stream. В случае с приложением ASP.NET Core вы можете вернуть его как FileStreamResult. В другом сценарии вы можете записать его в файловую систему или добавить в качестве вложения в электронное письмо и т. Д. Привязка его к одному узкому сценарию, например, возврат файла в качестве ответа от веб-приложения, ограничивает удобство использования вашей библиотеки.

Короче говоря, ответ на ваш вопрос, по сути, вам не нужно делать это в первую очередь. Сосредоточьте свою библиотеку на том, за что она в действительности отвечает, и вам не нужны эти типы зависимостей.

...