这两天在写一个采用XML存储数据的网站。我定义了两个类: ProductCategory与ProductCategoryCollection,用于在运行时存储产品分类数据,ProductCategoryCollection从CollectionBase继承,用于存储与访问ProductCategory实例的集合。产品分类数据存储在一个xml文件中, 我想通过Deserialize生成ProductCategoryCollection的实例,然后通过ProductCategoryCollection访问 ProductCategory。在定义Xml数据时,原以为节点名称与类名相同就行了,以前也这样Deserialize过,没问题,可是今天一运行就出错。看来ProductCategoryCollection类不是用类名作为Xml节点名,我就对ProductCategoryCollection的实例进行Serialize,发现原来用的是<ArrayOfProductCategory>, .NET中对从CollectionBase继承的类作了特殊处理,这样定义节点名就受到了限制,不知有没有方法在Deserialize时指定Xml的节点名称?
不少小企业的网站都是用于产品宣传,在网站主要放一些产品资料。对于这类网站,我觉得用Xml来存储数据比较适用,没必要采用数据库。这样既节省成本、开发效率也高。