ASP.NET WebForms 网站中的 .NET 4.7.2 依赖注入 - 构造函数注入不起作用 [英] .NET 4.7.2 Dependency Injection in ASP.NET WebForms Website - Constructor injection not working
本文介绍了ASP.NET WebForms 网站中的 .NET 4.7.2 依赖注入 - 构造函数注入不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我们目前正在处理一个较旧的项目(ASP.NET Web 窗体网站),并尝试查看是否可以为其设置依赖项注入.
需要强调的是:这不是一个 Web 应用程序项目......它是旧类型的网站.
它目前的目标是 .NET 4.7.2:
<httpRuntime targetFramework="4.7.2"/>
到目前为止,我们已经包含了 NuGet 包:
定义了一些虚拟接口和实现:
公共接口 IDependencyTest{字符串 GetName();}公共类 DependencyTest : IDependencyTest{公共字符串 GetName(){return "Mwuhahaha!!!";}}
并在 global.asax 中的 Application_Start 事件处理程序中连接 DI 容器:
void Application_Start(object sender, EventArgs e){var 容器 = this.AddUnity();container.RegisterType();}
所需的命名空间已导入:
<%@Import Namespace="Microsoft.AspNet.WebFormsDependencyInjection.Unity" %><%@ 导入命名空间="Unity" %>
创建了一个测试页面Teste.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Teste.aspx.cs" Inherits="Teste" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="服务器"><title></title>头部><身体><form id="form1" runat="server"><div><asp:Label ID="lblDisplay" runat="server" Text="运气不好..."></asp:Label>
</表单>