将类转换为XML的最快方法是什么?

Luk*_*101 1 c# xml xslt asp.net-mvc-2

我想知道将相当大的类转换为XML的最快和最轻量级的技术是什么.该类将包含列表和数组.我需要将所有这些数据转换为XML

这是我的应用程序所做的:它将使用linq从数据库中获取所有信息.然后将数据存储在类中.然后我想将此类转换为XML.当数据是XML格式时,我会将XML与xsl样式表一起发送到浏览器以显示给用户.最快的方法是什么?

Jor*_*dão 5

XmlSerializer实际创建的组件(具有XmlSerializationWriter被定制的序列化类).您可以按照以下步骤查看生成的代码.

您只在第一次遇到新类型时付费.

所以我认为你应该真正选择XmlSerializer,不仅仅是为了性能,而是为了可维护性.

您可以使用类似mixin的序列化程序类:

public interface MXmlSerializable { } 
public static class XmlSerializable {
  public static string ToXml(this MXmlSerializable self) {     
    if (self == null) throw new ArgumentNullException();     
    var serializer = new XmlSerializer(self.GetType());     
    using (var writer = new StringWriter()) {       
      serializer.Serialize(writer, self);       
      return writer.GetStringBuilder().ToString();     
    }   
  }   
}

public class Customer : MXmlSerializable {   
  public string Name { get; set; }   
  public bool Preferred { get; set; } 
}

// ....

var customer = new Customer {    
  Name = "Guybrush Threepwood",    
  Preferred = true }; 
var xml = customer.ToXml();
Run Code Online (Sandbox Code Playgroud)