我用 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] 删除。
我来说两句