【发布时间】:2023-03-10 04:32:01
【问题描述】:
好的,所以我有一个 UI 层和一个 BLL 层。
namespace BLL
{
public class User : IUser
{
public void DoSomething(){}
}
public interface IUser
{
void DoSomething();
}
public static class TypeRegistry
{
public static void RegisterTypes(Container container)
{
container.Register<IUser, User>(Lifestyle.Singleton);
}
}
}
namespace UI
{
public partial class Login : System.Web.UI.Page
{
private IUser user;
}
}
我不知道如何让用户不为空。我尝试过创建一个构造函数,但导致错误
public Login(IUser user){ this.user = user;}
编译错误:登录不包含采用 0 个参数的构造函数
【问题讨论】:
-
您是否已将 ASP.NET 配置为使用您的依赖注入框架?您是否正确配置了 DI 框架来处理 ASP.NET 的依赖关系?
-
如果这就是你的意思,我已经添加了简单的注射器包。但我知道简单的注入器将对象注入构造函数,但在 UI 中你不能有构造函数
-
您需要在页面的某个事件上初始化
user字段。查看page lifecycle 并确定哪个事件适合您的用例(可能是Page_Init或Page_Load)。
标签: c# asp.net .net code-behind simple-injector