摘要:
前言 我们在上节讲了使用ISAPI是一种重要的技术,可以让我们扩展服务器的功能,有两个手段实现,一个是ISAPI扩展,一个是ISAPI过滤器,我们下面就来说说其中的这个ISAPI扩展。 阅读目录 一:HttpHandler 二:HttpHandler的实现 三:HttpHandler的运行机制 四: 阅读全文
摘要:
前言 我们在上节讲了使用ISAPI是一种重要的技术,可以让我们扩展服务器的功能,有两个手段实现,一个是ISAPI扩展,一个是ISAPI过滤器,我们下面就来说说其中的这个ISAPI过滤器。 阅读目录 一:ISAPI筛选器 二:HttpModule 三:HttpModule的实现 四:HttpModul 阅读全文
摘要:
前言 我为什么要写这一系列呢,因为只有了解运行机制,学好底层,对我们更深入的理解一定的问题有帮助 阅读目录 一:ASP.NET的工作原理 二:ASP.NET页面的执行流程 三:ISAPI 四:ASP.NET请求的处理过程 一:ASP.NET的工作原理 我们根据下面这张图来说明ASP.NET是如 阅读全文
摘要:
阅读目录 一:前言 二:实现步骤 三:运行效果 一:前言 之前我在一家电子商务公司做接口对接工作,同步快递公司给我们网站的订单数据,在这里我先给出快递公司给我的接口文档(见下图),我当时的做法是通过XmlDocument以及XmlElement,XmlNodeList等类去解析这个文档的,然后找到我要的数据更新至我们的数据库的,其实在这里有个更简单的做法,就是反序列化,把XML文档反序列化为对象。 二:实现步骤 1:XML文件编写 我们以学生科目为例 1.1 Student.xml <?xml version="1.0" encoding="utf-8&qu 阅读全文
摘要:
有些时候,应用需要在开机时就自动运行,例如某个自动从网上更新内容的后台service。怎样实现开机自动运行的应用?在撰写本文时,联想到高焕堂先生以“Don''t call me, I''ll call you back!”总结Android框架,真是说到点子上了。理解这句话的含义,许多有关Android平台上实现某种功能的问题,都能迎刃而解。使用场景:手机开机后,自动运行程序,在屏幕上显示"Hello. I started!"字样。背景知识:当Android启动时,会发出一个系统广播,内容为ACTION_BOOT_COMPLETED,它的字符 阅读全文
摘要:
阅读目录 一:前言 二:实现步骤 三:运行效果 前言 XML文档验证是指表示这个XML文档是否符合规则,是否是个正确的XML文档,我们这里讲使用XmlValidatingReader类对XML文档验证,该类通过实现W3C建议所定义的有效性约束DTD,数据简化XDR,XML架构定义语言XSD验证服务。如果验证通过了证明这个XML文档是有效的,否则是无效的。 XmlValidatingReader类实现XmlReader类,并以只进的方式对XML流进行验证。 先看下面这张XML架构图,图里面描述了<BookShop>元素下的子元素必须为<Book>,本来闭合标签应该是< 阅读全文
摘要:
前言 在上一文中我们讲了如何把对象序列化为XML文档,今天在这里我们讲一下如何把一个复杂对象序列化为XML文档。我们之前说过在创建一个实体类时,只要在该类的属性上加上自定义属性,XMLSerializer就可以读取这些属性,就可以将它们映射成XML元素和属性了。我们这里同样要用到这些原则 阅读目录 一:思路 二:实现步骤 三:运行效果 一:思路 我们先看一下下面这张图,这张图是一家物流公司的接口文档,我们来看看它们这个XML文档是怎么序列化出来的,首先我们分析这张图根节点是<RequestOrder/>节点,那么实体类中这个属性的标签一定是[XmlRoot]标签了,我们知道[... 阅读全文
摘要:
前言 在此之前我们无论是做Activity,Service,BroadcastReceiver,都是在开机之后运行的,其实开机事件也会送出一个叫做Android.intent.action.BOOT_COMPLETED的广播信息,只要可以接收这个ACTION名称,就可以在我们自定义的BroadcastReceiver的onReceive()方法中运行自己的程序了。 只要一开机就会运行这个程序,知道这个程序被删除掉。 思路 为了捕捉系统的开机事件广播,所以必须在AndroidMainfesy.xml里的<application/>节点当中设置<receiver/>标签,并 阅读全文
摘要:
前言 在XMLSerializer类中,包含了把对象序列化为XML文档和把XML文档反序列化为对象的方法,在创建一个类时,只要在该类的属性上加上自定义属性,XMLSerializer就可以读取这些属性,就可以将它们映射成XML元素和属性了 在XMLSerializer类中,把对象序列化为XML文档用Serialize()方法实现,反序列化通过Deserialize()方法实现 要对一个类进行序列化处理,可以在它的前面加上[Serializable]标签,也就是给类添加一个串行化属性,另外还存在[NonSerializable]标签,它只适用于被[Serializable]标签定义的类... 阅读全文
摘要:
前言 我们在上百度搜索的时候,只需要输入一个字,就会在下面显示可能的关键字让你挑选,给我们带来了很大的方便,在Android里我们也可以实现此效果。 思路 在Android里我们需要使用AutoCompleteTextView对象和ArrayAdapter就能达到此效果。 我们先在布局文件中放置一个AutoCompleteTextView控件,然后预先设置好字符串数组的内容,其次再将字符串数组放置到ArrayAdapter里,最后用AutoConpeleteTextView的setAdapter()方法把ArrayAdapter对象添加进去就可以完成了。 实现步骤 一:布... 阅读全文
摘要:
前言 我们知道我们可以利用JavaScript来操作HTML的DOM结构,以便完成一些功能,同样在.NET中我们可以利用C#来操作XML的DOM结构来完成一些功能。下面我们就来举例说明一下 阅读目录 一:实现步骤 二:运行效果 三:扩展学习 实例 一:实现步骤 1:XML文件编写 我以图书商城为例其中以我国著名的四大名著写了个XML文档图示如下 1.1 XMLFile1.xml 2:代码文件编写 2.1 Form1.cs using System; using System.Collections.Generic; using System.Co... 阅读全文
摘要:
前言 与XmlReader类相对应,.NETFramework也提供了一个以快速的,非缓存的,只向前的,动态写入XML数据的类即XmlWriter类,可以将XmlWriter类理解为与XmlReader类对等的类 阅读目录 一:写入XML文档的步骤 二:实现步骤 一:写入XML文档的步骤 为了写入属性,元素,需要调用一个WriteStrat某某()方法和WriteEnd()某某方法,在使用XmlWriter类的时候并不是简单的写入一个元素,需要先写入开始标签,然后写入内容,最后写入结束标签,因此必须要跟踪在XML文档中所处的位置,以保证在正确的时间调用正确的结束方法 1:使用... 阅读全文
摘要:
前言 XmlReader类提供了对XML文档内容快速的,只向前的访问,但不适合对文档内容和结构进行修改,XmlReader从XML文档的顶部开始读取数据,每次读取一个节点 阅读目录 一:读取XML文档的步骤 二:实现步骤 三:运行效果 一:读取XML文档的步骤 1:使用XmlReader类的Create()方法创建该类的实例,并将XML文档名称作为参数传入方法。 2:建立一个循环调用Read()方法,逐节点读取整个XML文档,如果存在一个节点可被读取则被返回true,当到达XML文档最后时返回false。 3:在这个循环当中,检查XmlReader对象的属性和方法,以获得... 阅读全文
摘要:
前言 .NET的Framework的XML类提供了一个XML分析器对象XmlDocument,它是执行大多数XML操作的核心对象,在操作XML文档时,首先要定义一个XmlDocument对象,再将XML文档载入内存,最后对XML文档进行读写操作 阅读目录 1:XML文件编写 2:代码文件编写 实例 如何获取我们想要的名称,性别以及年龄呢? 实现步骤 1:XML文件编写 XMLFile.xml <?xml version="1.0" encoding="utf-8" ?> <Students> <student> < 阅读全文
摘要:
android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应VERBOSE,DEBUG,INFO, WARN,ERROR。 1、Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时使用就是Log.v("",""); 2、Log.d的输出颜色是蓝色的,仅输出debug调试的意思,但他会输出上层的信息,过滤起来可以通过DDMS的Logcat标签来选择; 3、Log.i的输出为绿色,一般提示性的消息information,它不 阅读全文
摘要:
阅读目录 一:Service是什么 二:布局文件编写 三:代码文件编写 四:项目定义文件编写 五:运行效果 六:Service是新的进程吗?是新的线程吗? 一:Service是什么? Service是Android系统的组件之一,和Activity,Intent,Conent... 阅读全文
摘要:
前言 1.1 在上节课我们讲了在项目定义文件AndroidManifest.xml中注册BroadcastReceiver广播接收器的方法,今天我们介绍在代码中注册BroadcastReceiver广播接收器的方法。在项目定义文件AndroidManifest.xml中注册BroadcastReceiver广播接收器的话,即使你的应用程序已经被关闭了,这个BroadcastReceiver广播接收器依然会接收到广播,比如:你的这个应用程序是监听拍照事件,每次拍照后BroadcastReceiver广播接收器接收到后会弹出一个提示框“您已拍了图片,图片已保存”,当你开着这个应用程序是能收到... 阅读全文
摘要:
阅读目录 一:什么是BroadcastReceiver? 二:布局文件编写 三:代码文件编写 四:项目定义文件编写 五:运行效果 一:什么是BroadcastReceiver? 在现实生活中,当我们开车的时候,会听到交通台从广播里说“朝内大街拥堵”,如从这里通过的车辆请绕行,这就是广播,交通台是发送方,我们个人是接收方,至于我们到底在没在听交通台,我们也许在听郭德纲的相声,又或者我们虽听了交通台,要不要再走朝内大街是我们自己的事情了,所以在Android中也是一样的,广播只管发送数据,至于怎么接收数据和怎么处理数据就是接收方的事情了。 对于我们来说,我们首先需要把广... 阅读全文
摘要:
前言 Android里的很多控件,有许多是为了与用户进行交互的,也有一些是为了作为程序提示,显示程序运行状态的。在这里我们介绍一下ProgressBar控件的使用,它就是作为显示程序运行状态存在的。 思路 在这个应用一开始是看不到进度条的,我们布局一个按钮,然后单击这个按钮,再然后我们创建一个新的进程来假装程序很”忙碌“,可以在进程当中取得运行时的进度,在运行过程中,将运行的进度通过TextView显示出来。 因为这个进程是新开启的,新开启的进程无法访问Activity里的控件,也就无法把运行状态传递出来,所以我们要通过Handler和Message对象将新开启的进程里的状态传... 阅读全文
摘要:
前言 我们现在在随便一个手机上用手指在屏幕上滑来滑都可以去拖动图片,其实在Android里这很简单,下面我就给大家具体讲解一下。 思路 我们首先需要Gallery这个对象,俗称画廊对象,大家都知道画廊吧,在现实生活中画廊里面放置的都是一个个画家画的具体的画,画廊有了,还需要什么呢?还需要的就是一幅幅具体的画了,具体的画其实就是ImageView对象了。如何把画好的画填充到画廊上呢?这里就需要一个填充器了,就是BaseAdapter。 实现步骤 一:布局文件编写 1.1:布局文件main.xml <?xml version="1.0" encoding="ut 阅读全文