将XElements添加到集合的最快方法

时间:2010-10-21 16:29:05

标签: .net xml vb.net

我正在填充XML结构(使用VB.NET)以传递给Web服务。以下是如何填充一块结构,并以类似的方式填充结构的其余部分:

Private Shared Function GetSpecialties(ByVal specialties As System.Data.Linq.EntitySet(Of Provider.provider_specialty)) As XElement

    Return _
        New XElement( _
            "provider_specialties", _
                From s In specialties _
                Select New XElement( _
                    "provider_specialty", _
                    New XElement("external_provider_specialty_id", s.external_provider_specialty_id), _
                    New XElement("record_type_id", s.record_type_id), _
                    New XElement("effective_date", s.effective_date), _
                    New XElement("termination_date", s.termination_date), _
                    New XElement("specialty_code", s.specialty_code)))

End Function

结构的某些部分最多可包含30个元素。每个记录创建大约需要0.1秒,并且需要创建大约35,000条记录,因此整个过程大约需要一个小时。

有没有更快的方法来填充像这样的XML结构?

1 个答案:

答案 0 :(得分:2)

如果您只是想创建输出XML字符串,那么您应该使用XmlTextWriter(通过StringBuilder?)来生成XML,从而节省足够的时间。这样可以避免实例化许多新对象,只需将所需内容放入流中即可。