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.EmbeddedAdd 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;
}
}
}
}