网站中加入地图,大连市房屋管理局官方网站,网站建设前期准备工作,天津网站建设是什么准备使用的表是Student#xff0c;创建相关的IDAL、DAL、IBLL、BLL层。使用EF#xff0c;创建一个Model层#xff0c;存放edmx文件。创建一个Infrastructure层#xff0c;基础设施项目#xff0c;使用泛型类型。普通类型的使用1.APP.Config 配置信息此处有个需要注意的地方…准备使用的表是Student创建相关的IDAL、DAL、IBLL、BLL层。使用EF创建一个Model层存放edmx文件。创建一个Infrastructure层基础设施项目使用泛型类型。普通类型的使用1.APP.Config 配置信息此处有个需要注意的地方configSections节点必须要放在configuration节点的最上面否则运行会报错。这个在MSDN上有说明。2.Autofac.config配置信息3.控制台程序代码usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingApps.BLL;usingApps.DAL;usingApps.IBLL;usingApps.IDAL;usingApps.Infrastructure.BaseObject;usingApps.Infrastructure.IBaseInterface;usingApps.Model;usingAutofac;usingAutofac.Configuration;namespaceApps.Con{classProgram{static void Main(string[] args){#region 普通类型---Student---Config获取配置var builder newContainerBuilder();builder.RegisterModule(new ConfigurationSettingsReader(autofac));//编译容器完成注册且准备对象解析var container builder.Build();//现在你可以使用 Autofac 解析服务. 例如,这行将执行注册的lambda表达式对于 IConfigReader 服务.//但是我们不推荐直接操作容器这会导致内存泄漏。//当我们解析出一个组件时依赖于我们定义的lifetime scope一个新的对象实例会被创建。using (var scope container.BeginLifetimeScope()){//从容器中解析需要使用的组件var iStudentBLL scope.Resolve();//调用解析后的组件中的方法List list iStudentBLL.GetList().ToList();Console.WriteLine(List中的数据行 list.Count);}#endregion Console.ReadKey();}}}(1)使用流程a.参见Autofac管理注册类的容器实例var builder new ContainerBuilder();b.下面就需要为这个容器注册它可以管理的类型builder.RegisterType().As();c.注册泛型,这个地方需要把泛型进行注册否则无法正常执行builder.RegisterGeneric(typeof(UnitOfWork)).As(typeof(IUnitOfWork)).SingleInstance();或builder.RegisterType().As().SingleInstance();d.生成具体的实例var container builder.Build();e.在应用运行期间你需要从容器生命周期域中解析出组件实例来使用它们。using (var scope container.BeginLifetimeScope()) { }f.从容器中解析需要使用的组件var iStudentBLL scope.Resolve();g.调用解析出来的组件的方法List list iStudentBLL.GetList().ToList();(2)中间碰到的问题。在官方文档http://docs.autofac.org/en/latest/configuration/xml.html#configuring-with-application-configuration-legacy-pre-4-0其中的配置示例component节点中。type属性是 类完整命名空间(包括类名)类的命名空间(不包括类名)service属性是 类完整命名空间(包括类名)与示例中的区别就是示例中的service属性值 与type保持一致均有逗号 后加类的命名空间。而官方文档中却没有。当示例也这么编写时运行就报错了。泛型类型的使用当在autofac.config配置文件中如此配置。泛型类型的配置失败无法正常运行随之放弃。不知道如何进行泛型类型的配置设置。