c# - C# XNode 添加一个 NameSpace
问题描述
我有一个由 JSON 制作的 xNode。
C#代码:
Class class = new Class();
class.ComboBoxChecked = Class.ComboBoxChecked;
class.RadioButtonChecked = Class.RadioButtonChecked;
string test = JsonConvert.SerializeObject(class);
XNode node = JsonConvert.DeserializeXNode(test, "Root");
XML:
<Root>
<RadioButtonChecked>1</RadioButtonChecked>
<ComboBoxChecked>5</ComboBoxChecked>
</Root>
我的目标是为其添加一个命名空间。我怎样才能做到这一点?
解决方案
您可以通过这种方式在根级别添加命名空间:
XmlSerializer serializer = new XmlSerializer(typeof(MyClass));
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("example", "http://www.w3.org");
using (var ms = new MemoryStream())
{
using (TextWriter writer = new StreamWriter(ms))
{
var xmlSerializer = new XmlSerializer(typeof(MyClass));
xmlSerializer.Serialize(writer, myClassInstance, ns);
XNode node = XElement.Parse(Encoding.ASCII.GetString(ms.ToArray()));
}
}
如果你需要在它的子类中使用命名空间,你可以使用IXmlSerializable
接口编辑你的类,这里是一个例子
推荐阅读
- javascript - DT::Datatable 的正负值颜色不同
- javascript - 地图不是函数:{} JSON 数组
- python - 如何找出我的 Dask 数据框正在使用多少工作人员?
- awk - 在第二个文件的每一行前面打印一个文件的第一行
- c# - 如何使用syncfusion pdf获取剩余页面大小
- mysql - MySQL 选择行和分组
- java - 当我添加到 OnClickListener 上的列表视图时出现错误
- java - 以日期为数据类型将字符串转换为“yyy-MM-dd”格式
- javascript - 如何在警报组件中添加 InputText?
- java - 无法使用 jackson 将 xml 绑定到 pojo,com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:无法识别的字段