.NET 4.7.2 下使用 VB.NET 在 WebForms 中的构造函数注入

Bra*_*lon 5 vb.net asp.net dependency-injection webforms

在 .NET 4.7.2 中,微软引入了在 WebForms 中使用构造函数注入的能力,通过使用这里HttpRuntime.WebObjectActivator看到的

给出的示例是在 C# 中。我正在开发一个正在现代化的旧版 VB.NET 应用程序。我们想在我们计划使用的属性注入上使用构造函数注入,因为它更规范。

但是,当我尝试为 WebForm 提供参数化构造函数时,出现以下错误。

(BC30387) 类“testpage_aspx”必须声明一个“Sub New”,因为它的基类“TestPage”没有可以不带参数调用的可访问“Sub New”。

这似乎是由于 VB.NET 处理构造函数和继承的方式。通过 VB.NET 处理构造函数的方式,甚至可能在 VB.NET WebForms 项目中使用参数化构造函数?

mat*_*fei 1

您是否在 web.config 中将应用程序定位到 4.7.2?像下面这样的东西。构造函数注入不能在网站项目(没有 vbproj 文件的项目类型)中的页面/控件中使用,因为在为页面/控件生成代码时,页面/控件的基本类型是未知的。

<httpRuntime targetFramework="4.7.2"/>
Run Code Online (Sandbox Code Playgroud)

编辑:这是一篇关于如何在现有 WebForms 应用程序中使用 Unity 的博客文章。

  • 这是 WebForms,而不是网站项目。构造函数注入在 C# WebForms 中工作得非常好。我有一个演示项目可以证明这一点。同样的演示项目在用 VB.NET 编写时不起作用。 (2认同)