У меня есть VirtualPathProvider, который загружает содержимое моего файла aspx из БД.Кажется, все хорошо, за исключением случаев, когда в моем файле aspx есть ссылка на пространство имен или сборку, которое явно не упомянуто в моем файле web.config.
Решение кажется простым, верно?Добавить ассемблерные и импортные директивы на страницу ... Но это не похоже на работу.Я по-прежнему получаю следующее HttpCompileException:
c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET
Files\app.server\70480a40\2a773b44\App_Web_test.aspx.e7cf0b6b.mzeindht.0.cs(183): error CS0234:
The type or namespace name 'Model' does not exist in the namespace 'MyApp.Data' (are you missing an assembly reference?)
Несмотря на то, что на моей странице test.aspx, сохраненной в БД, у меня есть:
<%@ Assembly Name="MyApp.Data" %>
<%@ Import Namespace="MyApp.Data" %>
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MyApp.Data.Model.TestModel>" %>
<asp:Content ContentPlaceHolderID="MainContent" runat="server">
</asp:Content>
Теперь я уже знаю, что MyApp.Dataуже был загружен в AppDomain (я проверил во время выполнения, проверив AppDomain.CurrentDomain.GetAssemblies ()), и я знаю, что не получен неудачный запрос на загрузку сборки MyApp.Data (потому что я привязан к AppDomainСобытие .ResolveAssembly и оно не запускается непосредственно перед возникновением исключения).Кроме того, если я изменю имя в каталоге сборки на MyApp.Data123 (поддельное имя), страница сорвется, пытаясь загрузить сборку.
Если я полностью удаляю директиву сборки со страницы, то яполучить пространство имен. Тип или имя пространства имен 'MyApp' не может быть найдено ... поэтому наличие там директивы ассемблера, кажется, немного помогает ...
Есть идеи, что мне здесь не хватает?Спасибо.