Получить объект System.Web.UI.Page (только для чтения) в ASP.Net MVC3 - PullRequest
0 голосов
/ 01 марта 2012

Я создаю веб-сайт MVC3 (C #, Razor), который использует некоторые классы, написанные на VB.Net, которые выполняют некоторые сложные проверки. Этим классам нужен объект System.Web.UI.Page в их конструкторе, потому что они используют Request.Form и Server.MapPath из объекта Page.

Я прекрасно могу использовать эти старые VB.Net-классы, но мне нужен объект Page. Есть ли способ добиться этого? Или я должен рефакторинг большого количества кода в классах VB.Net? (Я собираюсь занять часы ...)

Я читал о том, почему вы не должны использовать объект Page, поскольку есть лучшие альтернативы, но мне просто нужно, чтобы он мог использовать старые библиотеки, которые будут реорганизованы через несколько лет ...

Thx!

1 Ответ

0 голосов
/ 01 марта 2012

Вы можете создать новый объект страницы, это позволяет Server.MapPath () работать "из коробки".Запрос это другая история.Самый простой способ, который я знаю, это установить с помощью отражения:

        var page = new Page();
        var requestField = typeof(Page).GetField("_request", BindingFlags.Instance | BindingFlags.NonPublic);
        requestField.SetValue(page, HttpContext.Current.Request);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...