C# XmlSerializer重用具有不同命名空间的同一类
我在wcf做了休息服务。现在我有以下问题,我想用不同的名称重用多个类。这就是我在课堂上使用XmlSeralizer的方式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
[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(…)