Как следует использовать CompiledRazorAssemblyPart для загрузки Razor Views? - PullRequest
0 голосов
/ 23 июня 2018

У меня есть библиотека классов Razor, которая используется в качестве ссылки в проекте ASP.NET Core MVC. Приложение работает нормально. Я удалил ссылку и использовал CompiledRazorAssemblyPart, чтобы добавить dll к частям приложения. Вот пример кода Загрузка библиотек классов Razor в виде плагинов

Тот же маршрут, который работал, когда я использовал RCL в качестве эталона, больше не работает. Нужно ли использовать какие-либо другие настройки для загрузки вида?

1 Ответ

0 голосов
/ 01 октября 2018

У меня была похожая проблема с использованием CompiledRazorAssemblyPart, и оказалось, что проблема заключалась в том, что я добавлял свою сборку RCL (например, MyPlugin.dll) как CompiledRazorAssemblyPart, тогда как вам нужно добавить сборку .Views (например, MyPlugin.Views.dll).Ниже приведен пример кода, который я сейчас использую для добавления сборки плагина, на которую не ссылается основной проект веб-приложения.Обратите внимание, что вы, вероятно, все еще хотите сборку плагина в качестве стандартной части приложения для контроллеров и т. Д.

public static void AddPluginApplicationPart(IMvcBuilder mvcBuilder, Assembly assembly)
        {
            mvcBuilder.AddApplicationPart(assembly);

            Assembly viewsAssembly = null;
            try
            {
                viewsAssembly = Assembly.Load(assembly.GetName().Name + ".Views");
            }
            catch (FileNotFoundException)
            {
            }

            if (viewsAssembly != null)
            {
                // Adding this application part allows us to use compiled razor views from this plugin
                var viewsApplicationPart = new CompiledRazorAssemblyPart(viewsAssembly);
                mvcBuilder.ConfigureApplicationPartManager(manager => manager.ApplicationParts.Add(viewsApplicationPart));
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...