ASP .NET Core MVC在没有嵌入式资源的情况下运行时,可以从* .views.dll文件中添加视图。

时间:2018-10-13 17:54:19

标签: asp.net-mvc asp.net-core asp.net-core-mvc

我一直试图在可能的视图之间导入已编译视图*.Views.dll的ASP.NET Core MVC视图。

警告!

我无意在正在编译的资源中添加*.views.dll文件,但是之后。

为清楚起见,正在运行的程序必须从文件夹中获取文件并通过将汇编文件的内容添加到其视图中来读取文件

要获取更多信息,我将为您提供qule中语音链接的链接

此外,我不想使用嵌入式资源,因为视图仍然清晰可见。

link

我尝试过

    services.AddMvc().ConfigureApplicationPartManager(apm =>{
            var part = new AssemblyPart(AssemblyLoadContext.Default.LoadFromAssemblyPath("C:\\Users\\gianf\\source\\repos\\ViewTestPlugin2\\plug\\bin\\Debug\\netcoreapp2.1\\plug.Views.dll"));
            apm.ApplicationParts.Add(part);
        });

已解决!

看着* .views.dll文件的汇编,我注意到了

[assembly: ProvideApplicationPartFactory("Microsoft.AspNetCore.Mvc.ApplicationParts.CompiledRazorAssemblyApplicationPartFactory, Microsoft.AspNetCore.Mvc.Razor")]

因此,我尝试像这样手动设置它:

    services.AddMvc().ConfigureApplicationPartManager(apm =>
    {
        var a = new CompiledRazorAssemblyApplicationPartFactory();
        foreach (var b in a.GetApplicationParts(AssemblyLoadContext.Default.LoadFromAssemblyPath("C:\\Users\\gianf\\source\\repos\\ViewTestPlugin2\\plug\\bin\\Debug\\netcoreapp2.1\\plug.Views.dll")))
            apm.ApplicationParts.Add(b);
    });

所以它起作用了,我认为AssemblyPart坏了

0 个答案:

没有答案