c# - 如何解决找不到方法:'System.Collections.Generic.IList`1在 .Net Core 3.1 中
问题描述
将 .Net Core 2.2 MVC 项目迁移到 3.1 时,我面临以下问题。
找不到方法:'System.Collections.Generic.IList`1<Microsoft.Extensions.FileProviders.IFileProvider> Microsoft.AspNetCore.Mvc.Razor.RazorViewEngineOptions.get_FileProviders()'。
欢迎任何建议。
下面是示例代码。
配置服务方法。
services.Configure<MvcRazorRuntimeCompilationOptions>(options => { options.FileProviders.Clear(); options.FileProviders.Add(new EmbeddedFileProvider(typeof(HomeController).GetType().Assembly)); }); services.AddControllersWithViews().AddRazorRuntimeCompilation();
配置方法。
app.UseRouting(); app.UseEndpoints(endpoints => { // Mapping of endpoints goes here: endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}"); });
控制器。
public class HomeController : Controller { public IActionResult Index() { return View(); } }
如果需要更多详细信息,请告诉我。
解决方案
您需要Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
NuGet 包和这些用法:
using System.Reflection;
using Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation;
using Microsoft.Extensions.FileProviders;
你也可以有这样的代码,例如:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.MvcRazorRuntimeCompilationOptions>(options =>
{
options.FileProviders.Add(
new EmbeddedFileProvider(typeof(HomeController).GetTypeInfo().Assembly));
});
// Requires using System.Reflection;
var assembly = typeof(HomeController).GetTypeInfo().Assembly;
services.AddMvc().AddRazorRuntimeCompilation()
.AddApplicationPart(assembly)
.SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
}
推荐阅读
- c# - 如何从 CSV 文件创建二维数组
- angular - 添加 span 元素以显示错误消息
- sqlite - 问:SQLite 查询数据中的孤岛(即某个值已达到某个阈值的连续行)
- python - Pandas:基于标题子字符串的部分枢轴
- javascript - 在 webpack (SSR) 捆绑的 express 中找不到静态文件夹
- python - 使用递归构建各种树
- angular - 如何在 api 和 angular 6 之间发送通知
- javascript - 如何分配自定义系列标签?
- c++ - 这种组合算法如何优化?
- php - Queue\SerializesModels 移除变量 Laravel 事件