Я знаю, как добраться до ресурсов c во внешней библиотеке, используя:
_contents/RazorClassLibrary/data/static_files
, но это не то, что я хочу.
Я хочу что-то внешнее, вне "wwwroot" и с таким путем:
/data/static_files
Итак, я попытался:
var assembly = AppDomain.CurrentDomain.GetAssemblies().First(a => a.GetName().Name == "MyRazorClassLibrary");
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new EmbeddedFileProvider(assembly, assembly.GetName().Name),
RequestPath = new PathString("/data")
});
var subpath = "";
var embeddedContents = embeddedProvider.GetDirectoryContents(subpath);
// This works (I have many files under "MyRazorClassLibrary/data").
if (embeddedContents.Exists)
{
// But the count = 0.
var count = embeddedContents.Count();
// Hence, nothing will happen here either.
foreach (IFileInfo info in embeddedContents)
{
var filePath = info.PhysicalPath;
}
}
else
{
// No resources were found that match subpath (It never hits this line.)
}
Да, я могу получить это работает с использованием PhysicalFileProvider
в локальном пути, но я хочу аналогичные функциональные возможности в RazorClassLibrary или StandardClassLibrary.
Следовательно, что мне не хватает или где я иду не так?