Using StructureMap with the ASP.NET MVC framework
原文地址:http://www.bengtbe.com/blog/post/2009/02/27/Using-StructureMap-with-the-ASPNET-MVC-framework.aspx
Using StructureMap with the ASP.NET MVC framework
2009-02-27 星期五 作者:bengtbe
在这里我要阐述的是怎么用.net frameword 框架下的StructureMap这个类.
在学习这个之间你需要对ASP.NET MVC框架,依赖注入和控制反转有基本的了解。
这些技术也不只用于 StructureMap ,如果你喜欢这些,那么你当然也用其它的DI/Ioc 工具了。
我们就用这个UserController 例子还说起,它有一个属性IUserService 来调用控制层的服务,当
然IUserService 本身也会调用 IUserPepository 这个在数据层的方法。这个UserController 用
控制反转来访问IUserService ,这就是说这个UserService 类就是选用控制反转来注入
UserController 实例化IUserService;
public class UserController : Controller
{
private readonly IUserService m_UserService;
public UserController(IUserService userService)
{
m_UserService = userService;
}
public ActionResult Edit(int id)
{
return View(m_UserService.GetById(id));
}
}
这就叫容器注入,如果你就这样写而没有写其它的配置文件那么你将得到如下的错误:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
No parameterless constructor defined for this object.
Description: An unhandled exception occurred during the execution of the current web
request. Please review the stack trace for more information about the error and where
it originated in the code.
Exception Details: System.MissingMethodException: No parameterless constructor defined
for this object.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
其实默认的,这个ASP.NET MVC framework 是需要一个构造函数的,一种方法是构造形式如下:
public UserController() : this(new UserService(new UserRepository()))
{
}
上面的代码运行时就是
相关文档:
做网站与搞安全一般都离不开权限分配,网站权限一般都直接设置站点所在的虚拟目录的,也就是在虚拟目录的安全里添加internet来宾账户,并分配除完全控制外的所有权限;如果是.NET,还必须给ASP.NET用户配置除完全控制以外的权限!
一般情况下,这样就OK了,服务器上的一般网站都可以正常运行了!但现在我发现:C\WINDOWS ......
string destFileName = "ok.txt";
destFileName = Server.MapPath(".") + "\\"+destFileName;
destFileName = Server.UrlDecode(destFileName);
&nbs ......
作者:寒羽枫(cityhunter172)
序
代码写 N 久了,总想写得别的。这不,上头说在整合两个项目,做成单一登录(Single Sign On),也有人称之为“单点登录”。查阅相关文档后,终于实现了,现在把它拿出来与大家一起分享。或许大家会问:“这与标题不符呀?”别急,在下笔之前,我脑子里想到了我刚使用 ......
首先建立一个c/s程序 在新建的form上加入一个浏览器控件和一个时间控件浏览器控件能转向你要执行的页面而时间控件控制多少时间后关闭你要执行的页面然后设置form的visible为false form的状态为最小化 目的是将整个执行的页面程序包在form的浏览器控件中执行而form会被隐藏 这样做神不知鬼不觉。最后用windows的计划任务每天 ......
检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.UnauthorizedAccessException: 检索 COM 类工 ......