我有一个WinForms项目,它使用了大量的用户控件。其中一些用户控件使用来自业务逻辑层的类。这些类主要对数据库执行CRUD操作(通过数据访问层)以及一些额外的验证和报告。在静态类中存储全局不可变数据
该项目使用的一些常见的物体(已登录用户,一些控制器和验证器),其被实例化在主要形式,然后通过初始化方法或公共属性注入到儿童用户控件。这意味着我有很多代码,只是将这些常用对象从父控件传递给子控件。
为了避免这种情况,我可以创建一个静态类(ApplicationContext的举例)和所有的通用控件保存到它。这将发生在主窗体中,并且项目中的所有其他用户控件或窗体都可以使用它。
我看到这种模式一般不鼓励(存储在静态类的一些全局数据)。但如果这些数据是不可变的呢?这种方法是否是一个好主意?
或者你知道的任何其他方法,这可以帮助我摆脱所有的初始化代码?
IoC容器就是我一直在寻找,谢谢。我选择了ninject :) – sventevit