C#反序列化命名空间的处理

有类似如下Xml节点,因为不是全文件所以没有命名空间定义<Group><Itemxsi:Attr="..."><Group>使用Xml反序列化为对应的类的实例,xsi无法... 有类似如下Xml节点, 因为不是全文件所以没有命名空间定义
<Group>
<Item xsi:Attr="...">
<Group>
使用Xml反序列化为对应的类的实例, xsi无法解析, 应该怎样更改反序列化函数呢
public static T ObjectToXmlDESerializer<T>(string str) where T : class
{

object obj;

using (var mem = new System.IO.MemoryStream(Encoding.Default.GetBytes(str)))

{

using (XmlReader reader = XmlReader.Create(mem))
{

XmlSerializer formatter = new XmlSerializer(typeof(T));
obj = formatter.Deserialize(reader);
}

}

return obj as T;

}
展开
 我来答
翾翳嬿
2015-03-18 · TA获得超过423个赞
知道小有建树答主
回答量:190
采纳率:66%
帮助的人:257万
展开全部

我也遇到过这个问题,简单点的可以把所有的 xml 的名字空间全部去掉比如:

public static T ObjectToXmlDESerializer<T>(string str) where T : class
{
str=str.Replace("xsi:","");
....
...

可以使用正则表达式。复杂的实现就需要对xml的规范比较了解了。

更多追问追答
追问
嗯,这个方法是挺直接的,谢谢你。
嗯,这个方法是挺直接的,谢谢你。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式