Reading Embedded Resource Files in .Net 6

Sometimes it’s useful to be able to embed json or other files into a .Net
assembly. Here’s how to access an embedded resource file in .Net 6.

Install the Microsoft.Extensions.FileProviders.Embedded nuget package

nuget install Microsoft.Extensions.FileProviders.Embedded

Add the file to your Solution as an embedded resource.

C#
using Microsoft.Extensions.FileProviders;
using System;
using System.IO;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace EmbeddedFileExample
{
    internal class Program
    {
        static async Task Main(string[] args)
        {
            var fileContents = await ReadEmbeddedFileAsStringAsync("Test.txt");
            Console.WriteLine(fileContents);
        }

        private static async Task<string> ReadEmbeddedFileAsStringAsync(string fileName)
        {
            var embeddedProvider = new EmbeddedFileProvider(Assembly.GetExecutingAssembly());
            var resourceStream = embeddedProvider.GetFileInfo(fileName).CreateReadStream();

            using (var reader = new StreamReader(resourceStream, Encoding.UTF8))
            {
                var query = await reader.ReadToEndAsync();
                return query;
            }
        }
    }
}