我用wcf做了一个休息服务。现在我有以下问题我想重用具有不同namesapce的多个类。这就是我在课堂上使用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());
答案 0 :(得分:1)
简短版本是“不,这是正确的”较长的版本是相同的,但警告说,存储和重新使用此序列化程序实例很重要:
public static void setPica036FNArray(String pica036fnArray) {
pica036FNArray += pica036fnArray;
}
时,动态生成的程序集将在序列化程序实例之间进行缓存和重用new XmlSerializer(Type)
构造,它不是