关于一个serializer 的问题

问题描述

方法1PublicSharedFunctionDeserializingXml_1(OfT)(ByRefinstanceAsT,ByValpathAsString)AsBooleanTry'生成DataContractSerializerDimserializerAsNewDataContractSerializer(GetType(T))'读入文件UsingfsAsFileStream=NewFileStream(path,FileMode.Open)'---这里报错instance=DirectCast(serializer.ReadObject(fs),T)EndUsingReturnTrueCatchexAsExceptionXmlSerialize.ErrorMessage=ex.MessageReturnFalseEndTryEndFunction

方法2PrivateSubdeserializingXml(OfTypeAsClass)(ByRefrefInstanceAsType,ByValpathAsString)refInstance=NothingDimfsAsFileStream=NothingTryDimsrAsNewSystem.Xml.Serialization.XmlSerializer(GetType(Type))fs=NewFileStream(path,FileMode.Open,FileAccess.Read)TryrefInstance=DirectCast(sr.Deserialize(fs),Type)Finallyfs.Close()EndTryCatchThrowFinallyIfrefInstanceIsNothingThenConsole.WriteLine("Error--->Deserialize")EndIfEndTryEndSub

调用PublicFunctionLoad(OfTypeAsClass)(ByRefinstanceAsType,ByValpathAsString)AsBooleanTry'这里调用方法DeserializingXml(instance,path)CatchReturnFalseEndTryReturnTrueEndFunction

IfpathIsNothingThenfilePath="文件名.xml"ElsefilePath=pathEndIfDimloadDataAsTraceabilityConfig=NothingIfNot(NewXmlSerialize()).Load(loadData,filePath)ThenReturnFalseEndIf

为什么使用方法1会报错--命名空间为空方法2就没问题

解决方案

本帖最后由 neusoft06 于 2014-02-10 15:07:55 编辑

时间: 2024-09-30 18:04:02

关于一个serializer 的问题的相关文章

scrapy-redis 分布式爬取源码分析

scrapy是Python的一个非常好用的爬虫库,功能非常强大,但是当我们要爬取的页面非常多的时候,单个主机的处理能力就不能满足我们的需求了(无论是处理速度还是网络请求的并发数),这时候分布式爬虫的优势就显现出来,人多力量大.而scrapy-Redis就是结合了分布式数据库redis,重写了scrapy一些比较关键的代码,将scrapy变成一个可以在多个主机上同时运行的分布式爬虫. scrapy-redis是github上的一个开源项目,可以直接下载到他的源代码: https://github.

Spring Boot使用redis做数据缓存

1 添加redis支持 在pom.xml中添加 Xml代码   <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-redis</artifactId>         </dependency>     2 redis配置 Java代码   package co

PHP内核探索之变量(5)- session的基本原理

原文:PHP内核探索之变量(5)- session的基本原理 这次说说session. session可以说是当前互联网提到的最多的名词之一了.它的含义很宽泛,可以指任何一次完整的事务交互(会话):如发送一次HTTP请求并接受响应,执行一条SQL语句都可以看做一次Session.如无特殊说明,本文中提到的Session单指HTTP会话. 本文是PHP内核探索的第五篇,主要包含如下几个方面的内容: 背景知识和session基础 PHP中session的原理 参考文献 一.背景知识,session基

我做的一个C++用的Serialization库(含部分源码)

众所周知,boost里面有一个Serialization.不过我这个跟boost的有本质上的差别.boost的Serialization是通过重载操作符将一个对象与一个流进行读写,而我则通过记录类的成员变量来自动产生相应的读写动作. 不过我的Serialization库有两个缺点,就是效率不是特别高,因为我产生的是可以与XML进行互相转换的通用对象.虽然这并不是必需的,只是我的个人爱好罢了.第二个缺点是Serialization会产生侵入式的代码.使用方法如下: 首先改造需要被Serialize

EndpointAddress——不只是一个Uri[上篇]

终结点是整个WCF的核心,由经典的ABC三要素组成.作为表示地址的EndpointAddress,很多人仅仅将其看成是一个表示标识服务并且表示服务所在地址的Uri,其实服务标识和定位服务仅仅是EndpointAddress一个基本的功能,它不仅仅是Uri那么简单. 一.EndpointAddress的三个功能 作为终结点的三要素之一的地址(Address),在基于WCF的通信中不仅仅定位着服务的位置,而且还提供额外的寻址信息.除此之外,终结点地址还和安全有关系,因为它包含着用于进行服务认证的服务

一个更好的C++序列化/反序列化库Kapok

1.Kapok的特点 简单,易用,header-only,只需要引用Kapok.hpp即可:高效,初步测试性和messagepack相当. 它是纯c++11实现,因此需要支持C++11的编译器. 2.主要功能 对对象进行自动化的序列化和反序列化,用起来非常简单,先来看个序列化/反序列化一个tuple的例子吧. //序列化  Serializer sr;  auto tp = std::make_tuple(10, 12, string("test"));  sr.Serialize(t

winform-C#字符串获取后如何取其中的一个字符

问题描述 C#字符串获取后如何取其中的一个字符 _Callback( {"Ishost":0, "items":[], "calvisitcount":[0,19,1,10,24,11,29,1,1,2,2,2,0,4,0,1,6,2,1,0,2,2,2,0,1,3,0,0,0,1,0], "modvisitcount":[{"mod":0, "todaycount":0, "

一个关于解决序列化问题的编程技巧

在前一篇文章中我曾经说过,现在正在做一个小小的框架以实现采用统一的API实现对上下文(Context)信息的统一管理.这个框架同时支持Web和GUI应用,并支持跨线程传递和跨域传递(这里指在WCF服务调用中实现客户端到服务端隐式传递),以及对上下文项目(ContextItem)的读写控制.关键就在于后面两个特性的支持上面,出现一个小小的关于序列化的问题.解决方案只需要改动短短的一行代码,结果却让我折腾了老半天. 一.问题重现 为了重现我实际遇到的问题,我特意将问题简化,为此我写了一个简单的例子(

.net的一个方法

问题描述 System.Xml.Serialization.XmlSerializerserializer=newSystem.Xml.Serialization.XmlSerializer(typeof(SriasPasCAL.PrintPreview.Doc));objectobj=serializer.Deserialize(fs);fs.Close();这段代码用了.NET里的一个方法,不清楚这段代码的具体意思,麻烦大虾们指点 解决方案 解决方案二:你查一查序列化和反序列化相关帮助吧.解