微软企业库5.0学习笔记(九)ASP.NET WEB应用程序
在ASP.NET Web窗体应用程序中,推荐的方法是将容器存到由Application字典对象提供的全局状态。当需要的时候你可以访问容器,甚至使用HTTP模块自动完成对页面上控件的注入。
通常情况下,你应该使用Application字典对象来存储容器的单个实例。您可能决定创建主要容器的子容器,并将它们存储到每个用户的Session对象中,甚至是每个请求,在这些子容器中注册自定义类型和映射。但是,这可能降低应用的性能,通常应尽可能避免创建额外的容器。
ASP.NET应用程序实例化容器的技术方法及限制:
1基本方法。适合小项目
2依赖注入的推荐方法。能在运行时自动完成对页面控件的注入。
3.限制和替代途径。
基本方法
通过Global.asax文件的Application_Start事件来创建并构建容器。
protected void Application_Start(object sender, EventArgs e)
{
Application.Lock();
try
{
var myContainer = Application["EntLibContainer"] as IUnityContainer;
if (myContainer == null)
{
myContainer = new UnityContainer();
myContainer.AddExtension(new EnterpriseLibraryCoreExtension());
// Add your own custom registrations and mappings here as required
Application["EntLibContainer"] = myContainer;
}
}
finally
{
Application.UnLock();
}
}
依赖注入的推荐方法
虽然上面提供的方法为你访问容器提供了一种途径,但是存在一些限制。这意味着你必须编写代码来处理您需要的类的实例,而且减少了代码的可发现性(discoverability)和可测性。如果你使用Unity容器,那么一个更好的方法就是通过容器的每个请求都使用BuildUp方法来构建依赖。这意味着你只需要关心你的空间和类的应用合适的属性,或着在容器中配置注入注册和映射。在运行时注入需要的企业库对象和你自己的类。
一种方法是创建HTTP模块当一个页面加载的时候自动为所有依赖创建注入。为了做到这一点,你需要一个HTTP模块在页面初始化执行过程中执行代码,以填充依赖。还可以使用Global.asax中的Application_Start方法的来创建和填充容器,类HttpApplicationState的一个扩展方法将容器暴露给应用程序代码.一旦创建了这些,只需要应用配置中的一行可使你应用中的控件和类能够自动依赖注入。
为自动依赖注入准备一个ASP.NET应用
1.在工程中创建一个新的ASP.NE
相关文档:
1.<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
Vs2005红色了,提示找不到该文件
于是改为.<script src="/Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
结果红色没有了,但是编译时报错,找不到该文件
结论:<script src="Script ......
<%
set conn= server.createobject("ADODB.connection")
conn.open "driver={sybase driver 10};"
"srvr=SYBASE;"
"UID=sa;"
"pwd=sybase;"
sql="select no from tab_st ......
ASP.NET的内置对象介绍
1.Response
2.Request
3.Server
4.Application
5.Session
6.Cookie
Request对象主要是让服务器取得客户端浏览器的一些数据,包括从HTML表单用Post或者GET方法传递的参数、Cookie和用户认证。因为Request对象是Page对象的成员之一,所以在程序中不需要做任何的声明即可直接使用;其类名为 HttpR ......
在web程序中,经常会使用在一个网页使用其他网页提交的数据信息,这里可以使用Request内置对象来完成,来获取用户提交的信息,根据客户端提交数据方式的不同,Request对象分别使用Form和QueryString集合属性来获取数据。下面是两种集合获取方式的不同点:通过Form获取数据时在form属性中简单的添加action=“跳转的网页 ......