简单的注入器Web表单

本文关键字:表单 Web 注入器 简单 | 更新日期: 2023-09-27 18:10:29

我有一个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;
     }
}

我想不出如何让user不为空。我已经尝试创建一个构造函数,但导致一个错误

    public Login(IUser user){ this.user = user;}

编译错误:Login不包含接受0个参数的构造函数

简单的注入器Web表单

这个链接帮我找到了答案:

https://simpleinjector.readthedocs.org/en/latest/wpfintegration.html

类似于@Steven的链接

https://simpleinjector.readthedocs.org/en/latest/windowsformsintegration.html

如果您已经完成了文档中Web Forms集成指南中所演示的所有注册,那么我认为问题是由于您将页面中的IUser可访问性级别设置为private

所以private IUser user;应该变成public IUser user;。由于Web Forms要求你在构造函数注入之前进行属性注入,所以属性用户应该是可以公开访问的。