c# - 从对象序列化到 XML 节点
问题描述
我有 2 个网络服务。一个 Web 服务接受 A 类型的对象。在 Visual Studio 中使用“添加服务引用”时,它会创建一个名为AType
.
我的第二个 Web 服务的输入法(称为 x(...))实际上接受了 A 类型的参数,但由于某种原因 WSDL 不正确并将其声明为 ##any。
<any namespace="##any" processContents="lax" minOccurs="1" maxOccurs="1">
这意味着在我的代码中,我必须从 XmlDocument 创建一个 XmlElement:
private static XmlDocument doc = new XmlDocument();
XmlElement e = doc.CreateElement("some-name", "some-uri");
有没有办法可以将 AType 转换为 XmlElement?我必须先回到字符串吗?
作为替代方案,我正在考虑合并我的两个 Web 服务 WSDL 文件......
解决方案
我终于发现以下代码完全符合我的要求:
public static XmlElement Serialize(MyObject someClassInstance)
{
XmlSerializer serializer = new XmlSerializer(typeof(MyObject));
XmlDocument doc = new XmlDocument();
XPathNavigator nav = doc.CreateNavigator();
XmlWriter writer = nav.AppendChild();
serializer.Serialize(writer, someClassInstance);
writer.WriteEndDocument();
writer.Flush();
writer.Close();
return doc.DocumentElement;
}
推荐阅读
- c# - 从excel C#读取带有长字符串的单元格
- xcode - 如何将 NSTextView 内容输出到文本文件
- javascript - Electron:无法在 BrowserWindow 中隐藏程序图标
- node.js - 想要使用 sendgrid 通过云功能发送电子邮件
- rest - http-headers 和 http-body 之间有什么安全区别吗?
- java - 调用 AJAX 方法时出现 400(错误请求)
- html - 如何查看最初编写的代码来获取此符号?
- javascript - Electron:我们可以使用 BrowserWindow 的唯一 ID 访问它吗?
- css - 当背景已经设置时,有没有办法设置背景不透明度?
- java - 如何实现与中间一个类的关联——Person、owns、Car