我正在构建一个MVC3网站(C#,Razor),该网站使用VB.Net编写的一些类来执行一些复杂的验证工作。这些类在构造函数中需要一个System.Web.UI.Page对象,因为它们使用Page-object中的Request.Form和Server.MapPath。
我可以完美地使用那些旧的VB.Net类,但我需要Page-object。有没有办法实现这个目标?或者我应该重构VB.Net类中的大量代码? (要花几个小时......)
我读到了为什么你不应该使用Page-object,因为有更好的选择,但我只需要它能够使用旧的库,这些库将在几年后重构......
THX!
答案 0 :(得分:0)
您可以创建一个新的页面对象,这使Server.MapPath()能够开箱即用。请求是另一个故事。我所知道的最简单的方法就是反思:
var page = new Page();
var requestField = typeof(Page).GetField("_request", BindingFlags.Instance | BindingFlags.NonPublic);
requestField.SetValue(page, HttpContext.Current.Request);