10 2009 档案
c#操作Xml(一)
摘要:Xml作为一个非常重要的纯文本格式已经进入了编程的很多领域,作为一个面向应用层面的c#也一样在很多领域离不开Xml。 但是,c#在很多方面对Xml做了写封装,以至于很多操作Xml的代码,都不需要手动去写。例如,c#写WebService这种需要大量操作Xml的服务,除了极其个别的情况下,基本看不到任何操作Xml的代码。这是c#的一个优势,但是,最近发现正是这样一些c#的优势,导致了新一代c#程序...
阅读全文
从写组件说Xml——改良(六)
摘要:1.提出问题 前面五篇说了如何实现,但是如果xml配置错了怎么办哪? 首先,利用Xsd,已经可以保证大部分xml的类型不会出错,但是,之前把Expression设计为弱类型的,也就意味着Expression不对其返回的类型负责,这是第一个在xml运行时存在的不稳定因素。 第二,变量本身也有不安全因素,首先变量名本身就非常容易出现书写错误,其次,变量名本身也是弱类型的,不到运行时,根本不知道里...
阅读全文
从写组件说Xml——实现(五)
摘要:1.实现接口 前面一篇已经确定了接口,并且已经生成了类,但是这些类显然还不完整,因为这些类没有实现任何接口。 不过,在实现接口之前,必须要注意的是ms的这一段警告: 这里清楚地说明了直接修改这段代码的一个风险:如果xsd发生变化了,那么再次用xsd.exe生成代码时,所做的修改讲丢失。这时要么手工迁移,要么就再写一遍,无论哪种,都是无法接受的。 因此,实现接口的代码不能放在生成的pptx.c...
阅读全文
从写组件说Xml——接口和初步实现(四)
摘要:前面三篇把Xsd已经定义好了,这时,对组件开发者和组件使用者而言都已经知道xml将是一个什么样的了。但是组件的使用者依然无法全面开始工作,因为他们不知道如何让这个xml真正跑起来。 因此,这一篇就讲一下,如何定义接口(这里的接口是泛义的接口。在这一篇的第一、第二节暂时忘了Xml)。 1.定义接口 快速定义接口的方式,就是利用类关系图,创建接口: 一开始,当然需要定义一个入口: 定义一个Cre...
阅读全文
从写组件说Xml——Xsd篇(三)
摘要:代码块与变量 上一篇讲到了强大的表达式,这一篇讲一下一个对于语言而言同样重要的代码块。 先看一个c#的代码块: 注意看这个例子,里面其实有两个嵌套的代码块,一个是SomeMethod的方法体,在里面的那个代码块中,先定义了一个temp的变量,然后利用这个temp变量,去交换了s1和s2(定义在SomeMethod这个代码块中的变量)的内容。 这里可以看到代码块需要这样几个要素: 变量定义 ...
阅读全文