Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XmlSerializer重用具有不同命名空间的同一类_C#_.net_Rest_Wcf - Fatal编程技术网

C# XmlSerializer重用具有不同命名空间的同一类

C# XmlSerializer重用具有不同命名空间的同一类,c#,.net,rest,wcf,C#,.net,Rest,Wcf,我在wcf做了休息服务。现在我有以下问题,我想用不同的名称重用多个类。这就是我在课堂上使用XmlSeralizer的方式 [Serializable] [DebuggerStepThrough] [XmlType(AnonymousType = true, Namespace = "http://www.eysnap.com/mPlayer")] [XmlRoot(ElementName = "Customer", Namespace = "http://www.eysnap.com/mPlay

我在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());
短版本为“不,大致正确”,长版本相同,但警告您存储并重新使用此序列化程序实例非常重要:

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