【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 (14)附数据库、发布项目 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 目录索引 (2)

【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 (14)附数据库、发布项目 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 目录索引

这样,Service\config 下面的xml如何配置,大家知道如何使用了吧。那我们再来看下webpage\config 里面的xml配置,我们以Controllers.xml为例:

【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 (14)附数据库、发布项目 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 目录索引

我们看下格式:

<!--登录控制器-->
<object type="WebPage.Areas.SysManage.Controllers.AccountController,WebPage" singleton="false">
<property ref="Service.User"/>
<property ref="Service.UserOnlineManage"/>
</object>

<!--登录控制器-->
<object type="控制器,WebPage" singleton="false">
<property ref="在配置Service\config时定义的id"/>
<property ref="在配置Service\config时定义的id"/>
</object>

首先,我们添加一个object标签 type 我们的控制器

<object type="WebPage.Areas.SysManage.Controllers.AccountController,WebPage" singleton="false">
</object>

然后,我们这里需要用到两个接口:一个是用户管理,一个是用户在线状态

那么我们添加两个 property标签:

<property ref="Service.User"/>
<property ref="Service.UserOnlineManage"/>

注意:这里property 的属性 name 的值 要跟控制器里声明的容器的名称一致

【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 (14)附数据库、发布项目 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 目录索引

这样,就实现了。然后,有朋友问,一定要这么复杂的配置么?其实,service\config里配置完,在webpage\config里不配置也是可以的,那么不配置Controllers.xml 如何调用呢?细心的朋友可能已经发现了,我们在BaseCotroller控制器里就没有使用xml配置,在webpages\Models\CommonHelper.cs中也没有使用xml配置:

【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 (14)附数据库、发布项目 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 目录索引

【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 (14)附数据库、发布项目 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 目录索引

对于Spring的使用,详细的讲解和专业的术语如何表述,请大家移步度娘。

  我们再来看下大家也是有很多问题的UserManage实现类:

//用户登录验证

public Domain.SYS_USER UserLogin(string useraccount, string password) 这个应该没什么可讲的,大家都一目了然。

//是否为超级管理员

 public bool IsAdmin(int userId) 这个就一点说明一下 return roles.ToList().Any(item => item.ID == ClsDic.DicRole["超级管理员"])  这里是用到了字典(是不是比较鸡肋),我们在应用类库Common下的Enums.cs中有这么一个

【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 (14)附数据库、发布项目 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 目录索引

也是就判断我们当前登录用户的ID是否等于我们定义的超级管理员的ID。

然后,我们再来看下 public Account GetAccountByCookie() 和 public bool Remove(int userId) 这两个是一样的,这两个都调用了外部接口,我们看下我们这个类的开始部分

【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 (14)附数据库、发布项目 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 目录索引

大家是不是在使用的时候会出现这么一个错误:未将对象引用到实例?

包括在控制中,我们调用接口的时候,出现这个错误,大部分的原因就是:没有注入。

控制器的注入我们上面刚刚讲过了,我们看下接口调用外部接口是如何注入的。service\config\service.xml

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwspjp.html