ASPX中的重复方法'ProcessRequest'

Mau*_*fer 6 asp.net-mvc f#

我正在尝试在F#中编写ASP.NET MVC视图(WebForms视图引擎).我已经可以编写常规的ASP.NET WebForms ASPX,它可以正常工作,例如

<%@ Page Language="F#" %>
<%
for i in 1..2 do %>
<%=sprintf "%d" i %>
Run Code Online (Sandbox Code Playgroud)

所以我假设我的web.config中的所有内容都已正确设置.

但是,当我从ViewPage继承页面时:

<%@ Page Language="F#" Inherits="System.Web.Mvc.ViewPage" %>
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

编译器错误消息:FS0442:重复方法.抽象方法'ProcessRequest'与继承类型中的抽象方法具有相同的名称和签名.

问题似乎是由F#CodeDom提供程序生成的这段代码:

[<System.Diagnostics.DebuggerNonUserCodeAttribute>]
abstract ProcessRequest : System.Web.HttpContext -> unit
[<System.Diagnostics.DebuggerNonUserCodeAttribute>]
default this.ProcessRequest  (context:System.Web.HttpContext) =
    let mutable context = context
    base.ProcessRequest(context) |> ignore
Run Code Online (Sandbox Code Playgroud)

当我将Page指令更改为使用C#时,生成的代码为:

[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public new virtual void ProcessRequest(System.Web.HttpContext context) {
    base.ProcessRequest(context);
}
Run Code Online (Sandbox Code Playgroud)

这当然工作正常,AFAIK在语义上与生成的F#代码不同.

我正在使用.NET 4.0.30319.1(RTM)和MVC 2 RTM

kvb*_*kvb 1

不幸的是,我不确定是否有任何方法可以new virtual在 F# 中声明成员。快速浏览一下规范并没有发现任何有希望的东西......