XmlSerializer 重用具有不同命名空间的相同类

用户2644964

我用 wcf 做了一个休息服务。现在我有以下问题,我想重用具有不同命名空间的多个类。这就是我在类中使用 XmlSeralizer 的方式。

[Serializable]
[DebuggerStepThrough]
[XmlType(AnonymousType = true, Namespace = "http://www.eysnap.com/mPlayer")]
[XmlRoot(ElementName = "Customer", Namespace = "http://www.eysnap.com/mPlayer", IsNullable = false)]
public class Customer
{
    [XmlElement]
    public string UserName { get; set; }

     [XmlElement]
     public string Password { get; set; }
}

现在我尝试使用不同的命名空间重用该类。我发现这个解决方案有效,但有没有更好的方法来解决这个问题?

WebOperationContext.Current.OutgoingResponse.ContentType = "text/XML";
XmlSerializer serializer = new XmlSerializer(typeof(Customer), "myNamescpace");
var sw = new StringWriter();
serializer.Serialize(sw, new Customer("test", "test1"));
byte[] resultBytes = Encoding.UTF8.GetBytes(sw.ToString());
马克·格拉维尔

简短的版本是“不,那是对的”较长的版本是相同的,但警告您存储和重用此序列化程序实例很重要:

  • 使用时new XmlSerializer(Type),动态生成的程序集将被缓存并在序列化程序实例之间重新使用
  • 但对于所有其他new XmlSerializer(...)构造,它不是

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C# XmlSerializer 序列化具有不同命名空间的同一个类

具有不同命名空间的 HPA

使用 xslt 引用具有不同命名空间的元素

XMLSerializer-是否将类添加到命名空间?

不带名称空间的XmlSerializer反序列化列表

具有不同命名空间支持的 XSD

如何使XmlSerializer忽略某种类型的所有成员?

指定的模式被调用但没有效果 - 不工作(XmlSerializer)

为不同命名空间中具有相同名称的两个服务设置两个入口

使用XmlSerializer反序列化XML,其中XmlElement名称不同但内容相同

在带有IE的JavaScript中使用XMLSerializer时,SVG标记上不需要的名称空间

如何在vbscript中重命名具有相同扩展名的不同命名文件

将 XElement 添加到具有相同命名空间的 XDocument

反序列化具有不同命名空间的 xml 文件

ejabberd:并行处理具有不同命名空间的多个数据包

XmlSerializer为x86和x64产生不同的输出

c++ - 具有相同名稱但不同命名空間的類的繼承

Android XMLSerializer无法将所有数据写入XML文件

XMLSerializer - 为什么在序列化时有一个额外的子层?

有时C#XmlSerializer序列化(保存)错误,字符数超出预期

保存文件-xmlSerializer

XmlSerializer更改编码

XmlSerializer按属性过滤

XMLSerializer 发现未知节点

XmlSerializer缺少元素

XmlSerializer 忽略的类属性

XmlSerializer:保留未知元素

使用XmlSerializer的问题

XmlSerializer System.InvalidOperationException