MessageQueryTable<TItem> Classe
Définition
Gère une collection d’objets de requête de message.Manages a collection of message query objects.
generic <typename TItem>
public ref class MessageQueryTable : System::Collections::Generic::ICollection<System::Collections::Generic::KeyValuePair<System::ServiceModel::Dispatcher::MessageQuery ^, TItem>>, System::Collections::Generic::IDictionary<System::ServiceModel::Dispatcher::MessageQuery ^, TItem>, System::Collections::Generic::IEnumerable<System::Collections::Generic::KeyValuePair<System::ServiceModel::Dispatcher::MessageQuery ^, TItem>>
public class MessageQueryTable<TItem> : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<System.ServiceModel.Dispatcher.MessageQuery,TItem>>, System.Collections.Generic.IDictionary<System.ServiceModel.Dispatcher.MessageQuery,TItem>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.ServiceModel.Dispatcher.MessageQuery,TItem>>
type MessageQueryTable<'Item> = class
interface IDictionary<MessageQuery, 'Item>
interface ICollection<KeyValuePair<MessageQuery, 'Item>>
interface seq<KeyValuePair<MessageQuery, 'Item>>
interface IEnumerable
Public Class MessageQueryTable(Of TItem)
Implements ICollection(Of KeyValuePair(Of MessageQuery, TItem)), IDictionary(Of MessageQuery, TItem), IEnumerable(Of KeyValuePair(Of MessageQuery, TItem))
Paramètres de type
- TItem
Type de valeurs retournées par les requêtes.The type of the values returned by the queries.
- Héritage
-
MessageQueryTable<TItem>
- Implémente
-
ICollection<KeyValuePair<MessageQuery,TItem>> ICollection<KeyValuePair<TKey,TValue>> IDictionary<MessageQuery,TItem> IEnumerable<KeyValuePair<MessageQuery,TItem>> IEnumerable<KeyValuePair<TKey,TValue>> IEnumerable<T> IEnumerable
Exemples
L’exemple suivant crée un message et des requêtes de message XPath.The following example creates a message and XPath message queries. Les requêtes sont évaluées par les objets XPathMessageQuery contenus dans un objet XPathMessageQueryCollection.The queries are evaluated by the XPathMessageQuery objects contained in an XPathMessageQueryCollection object. Les résultats de chaque requête sont testés à l'aide de la propriété ResultType de la classe XPathResult.The results of each query are tested using the ResultType property of the XPathResult class. Annulez les marques de commentaire du code alternatif pour consulter des fonctionnalités semblables montrées à l'aide du MessageQueryTable<TItem>.Uncomment the alternate code to see similar functionality demonstrated using the MessageQueryTable<TItem>.
using System;
using System.IO;
using System.Xml;
using System.ServiceModel.Dispatcher;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.Xml.XPath;
namespace MessageQueryExamples
{
class Program
{
static void Main(string[] args)
{
// The XPathMessageQueryCollection inherits from MessageQueryCollection.
XPathMessageQueryCollection queryCollection = MessageHelper.SetupQueryCollection();
// Create a message and a copy of the message. You must create a buffered copy to access the message body.
Message mess = MessageHelper.CreateMessage();
MessageBuffer mb = mess.CreateBufferedCopy(int.MaxValue);
// Evaluate every query in the collection.
foreach (XPathMessageQuery q in queryCollection)
{
// Evaluate the query. Note the result type is an XPathResult.
XPathResult qPathResult = q.Evaluate<XPathResult>(mb);
// Use the XPathResult to determine the result type.
Console.WriteLine("Result type: {0}", qPathResult.ResultType);
// The following code prints the result according to the result type.
if (qPathResult.ResultType == XPathResultType.String)
Console.WriteLine("{0} = {1}", q.Expression, qPathResult.GetResultAsString());
if (qPathResult.ResultType == XPathResultType.NodeSet)
{
// Iterate through the node set.
XPathNodeIterator ns = qPathResult.GetResultAsNodeset();
foreach (XPathNavigator n in ns)
Console.WriteLine("\t{0} = {1}", q.Expression, n.Value);
}
if (qPathResult.ResultType == XPathResultType.Number)
Console.WriteLine("\t{0} = {1}", q.Expression, qPathResult.GetResultAsNumber());
if (qPathResult.ResultType == XPathResultType.Boolean)
Console.WriteLine("\t{0} ={1}", q.Expression, qPathResult.GetResultAsBoolean());
if (qPathResult.ResultType == XPathResultType.Error)
Console.WriteLine("\tError!");
}
Console.WriteLine();
// The alternate code below demonstrates similar funcionality using a MessageQueryTable.
// The difference is the KeyValuePair that requires a key to index each value.
// The code uses the expression as the key, and an arbitrary value for the value.
//MessageQueryTable<string> mq = MessageHelper.SetupTable();
//foreach (KeyValuePair<MessageQuery, string> kv in mq)
//{
// XPathMessageQuery xp = (XPathMessageQuery)kv.Key;
// Console.WriteLine("Value = {0}", kv.Value);
// Console.WriteLine("{0} = {1}", xp.Expression, xp.Evaluate<string>(mb));
//}
Console.ReadLine();
}
}
public class MessageHelper
{
static string messageBody =
"<PurchaseOrder date='today'>" +
"<Number>ABC-2009-XYZ</Number>" +
"<Department>OnlineSales</Department>" +
"<Items>" +
"<Item product='nail' quantity='1'>item1</Item>" +
"<Item product='screw' quantity='2'>item2</Item>" +
"<Item product='brad' quantity='3'>" +
"<SpecialOffer/>" +
"Special item4" +
"</Item>" +
"<Item product='SpecialNails' quantity='9'>item5</Item>" +
"<Item product='SpecialBrads' quantity='11'>" +
"<SpecialOffer/>" +
"Special item6" +
"</Item>" +
"<Item product='hammer' quantity='1'>item7</Item>" +
"<Item product='wrench' quantity='2'>item8</Item>" +
"</Items>" +
"<Comments>" +
"Rush order" +
"</Comments>" +
"</PurchaseOrder>";
public static string xpath = "/s12:Envelope/s12:Body/PurchaseOrder/Items/Item[@quantity = 1]";
public static string xpath2 = "/s12:Envelope/s12:Body/PurchaseOrder/Items/Item[@product = 'nail']";
public static string xpath3 = "/s12:Envelope/s12:Body/PurchaseOrder/Comments";
public static string xpath4 = "count(/s12:Envelope/s12:Body/PurchaseOrder/Items/Item)";
public static string xpath5 = "substring(string(/s12:Envelope/s12:Body/PurchaseOrder/Number),5,4)";
public static string xpath6 = "/s12:Envelope/s12:Body/PurchaseOrder/Department='OnlineSales'";
public static string xpath7 = "//PurchaseOrder/@date";
public static string xpath8 = "//SpecialOffer/ancestor::Item[@product = 'brad']";
// Invoke the correlation data function.
public static string xpath9 = "sm:correlation-data('CorrelationData1')";
public static string xpath10 = "sm:correlation-data('CorrelationData2')";
public static string xpath11 = "/s12:Envelope/s12:Body/PurchaseOrder/Items/Item[@quantity = 2]";
public static Message CreateMessage()
{
StringReader stringReader = new StringReader(messageBody);
XmlTextReader xmlReader = new XmlTextReader(stringReader);
Message message = Message.CreateMessage(MessageVersion.Soap12WSAddressing10, "http://purchaseorder", xmlReader);
// Add two correlation properties using lambda expressions. The property names are
// CorrelationData1 and CorrelationData2. The first goes to "value1" and the
// second to "value2". You can use your own property names and values.
CorrelationDataMessageProperty data = new CorrelationDataMessageProperty();
data.Add("CorrelationData1", () => "value1");
data.Add("CorrelationData2", () => "value2");
message.Properties[CorrelationDataMessageProperty.Name] = data;
return message;
}
public static XPathMessageQueryCollection SetupQueryCollection()
{
// Create the query collection and add the XPath queries to it. To create
// the query, you must also use a new XPathMessageContext.
XPathMessageQueryCollection queryCollection = new XPathMessageQueryCollection();
XPathMessageContext context = new XPathMessageContext();
queryCollection.Add(new XPathMessageQuery(xpath, context));
queryCollection.Add(new XPathMessageQuery(xpath2, context));
queryCollection.Add(new XPathMessageQuery(xpath3, context));
queryCollection.Add(new XPathMessageQuery(xpath4, context));
queryCollection.Add(new XPathMessageQuery(xpath5, context));
queryCollection.Add(new XPathMessageQuery(xpath6, context));
queryCollection.Add(new XPathMessageQuery(xpath7, context));
queryCollection.Add(new XPathMessageQuery(xpath8, context));
queryCollection.Add(new XPathMessageQuery(xpath9, context));
queryCollection.Add(new XPathMessageQuery(xpath10, context));
queryCollection.Add(new XPathMessageQuery(xpath11, context));
return queryCollection;
}
public static MessageQueryTable<string> SetupTable()
{
// This is optional code to demonstrate using a MessageQueryTable.
// Compare this to the MessageQueryCollection.
MessageQueryTable<string> table = new MessageQueryTable<string>();
XPathMessageContext context = new XPathMessageContext();
// The code adds a KeyValuePair to the table. Each pair requires
// a query used as the Key, and a value that is paired to the key.
table.Add(new XPathMessageQuery(xpath, context), "value10");
table.Add(new XPathMessageQuery(xpath2, context), "value20");
table.Add(new XPathMessageQuery(xpath3, context), "value30");
table.Add(new XPathMessageQuery(xpath4, context), "value40");
table.Add(new XPathMessageQuery(xpath5, context), "value50");
table.Add(new XPathMessageQuery(xpath6, context), "value60");
table.Add(new XPathMessageQuery(xpath7, context), "value70");
table.Add(new XPathMessageQuery(xpath8, context), "value80");
table.Add(new XPathMessageQuery(xpath9, context), "value90");
table.Add(new XPathMessageQuery(xpath10, context), "value100");
table.Add(new XPathMessageQuery(xpath11, context), "value110");
return table;
}
}
}
Imports System.IO
Imports System.Xml
Imports System.ServiceModel.Dispatcher
Imports System.ServiceModel
Imports System.ServiceModel.Channels
Imports System.Xml.XPath
Namespace MessageQueryExamples
Public Class Program
Public Shared Sub Main(ByVal args As String())
' The XPathMessageQueryCollection inherits from MessageQueryCollection.
Dim queryCollection As XPathMessageQueryCollection = MessageHelper.SetupQueryCollection()
' Create a message and a copy of the message. You must create a buffered copy to access the message body.
Dim mess As Message = MessageHelper.CreateMessage()
Dim mb As MessageBuffer = mess.CreateBufferedCopy(Integer.MaxValue)
' Evaluate every query in the collection.
Dim q As XPathMessageQuery
For Each q In queryCollection
' Evaluate the query. Note the result type is an XPathResult.
Dim qPathResult As XPathResult = q.Evaluate(Of XPathResult)(mb)
' Use the XPathResult to determine the result type.
Console.WriteLine("Result type: {0}", qPathResult.ResultType)
' The following code prints the result according to the result type.
If qPathResult.ResultType = XPathResultType.String Then
Console.WriteLine("{0} = {1}", q.Expression, qPathResult.GetResultAsString())
End If
If (qPathResult.ResultType = XPathResultType.NodeSet) Then
' Iterate through the node set.
Dim ns As XPathNodeIterator = qPathResult.GetResultAsNodeset()
Dim n As XPathNavigator
For Each n In ns
Console.WriteLine(" {0} = {1}", q.Expression, n.Value)
Next
End If
If qPathResult.ResultType = XPathResultType.Number Then
Console.WriteLine(" {0} = {1}", q.Expression, qPathResult.GetResultAsNumber())
End If
If qPathResult.ResultType = XPathResultType.Boolean Then
Console.WriteLine(" {0} ={1}", q.Expression, qPathResult.GetResultAsBoolean())
End If
If qPathResult.ResultType = XPathResultType.Error Then
Console.WriteLine(" Error!")
End If
Next
Console.WriteLine()
' The alternate code below demonstrates similar funcionality using a MessageQueryTable.
' The difference is the KeyValuePair that requires a key to index each value.
' The code uses the expression as the key, and an arbitrary value for the value.
'Dim mq As MessageQueryTable(Of String) = MessageHelper.SetupTable()
'Dim kv As KeyValuePair(Of MessageQuery, String)
'For Each kv In mq
' '
' Dim xp As XPathMessageQuery = CType(kv.Key, XPathMessageQuery)
' Console.WriteLine("Value = {0}", kv.Value)
' Console.WriteLine("{0} = {1}", xp.Expression, xp.Evaluate(Of String)(mb))
'Next
Console.ReadLine()
End Sub
Private Shared Sub Evaluate(ByVal p1 As Object)
Throw New NotImplementedException
End Sub
End Class
Public Class MessageHelper
Shared messageBody As String = _
"<PurchaseOrder date='today'>" + _
"<Number>ABC-2009-XYZ</Number>" + _
"<Department>OnlineSales</Department>" + _
"<Items>" + _
"<Item product='nail' quantity='1'>item1</Item>" + _
"<Item product='screw' quantity='2'>item2</Item>" + _
"<Item product='brad' quantity='3'>" + _
"<SpecialOffer/>" + _
"Special item4" + _
"</Item>" + _
"<Item product='SpecialNails' quantity='9'>item5</Item>" + _
"<Item product='SpecialBrads' quantity='11'>" + _
"<SpecialOffer/>" + _
"Special item6" + _
"</Item>" + _
"<Item product='hammer' quantity='1'>item7</Item>" + _
"<Item product='wrench' quantity='2'>item8</Item>" + _
"</Items>" + _
"<Comments>" + _
"Rush order" + _
"</Comments>" + _
"</PurchaseOrder>"
Public Shared xpath As String = "/s12:Envelope/s12:Body/PurchaseOrder/Items/Item[@quantity = 1]"
Public Shared xpath2 As String = "/s12:Envelope/s12:Body/PurchaseOrder/Items/Item[@product = 'nail']"
Public Shared xpath3 As String = "/s12:Envelope/s12:Body/PurchaseOrder/Comments"
Public Shared xpath4 As String = "count(/s12:Envelope/s12:Body/PurchaseOrder/Items/Item)"
Public Shared xpath5 As String = "substring(string(/s12:Envelope/s12:Body/PurchaseOrder/Number),5,4)"
Public Shared xpath6 As String = "/s12:Envelope/s12:Body/PurchaseOrder/Department='OnlineSales'"
Public Shared xpath7 As String = "//PurchaseOrder/@date"
Public Shared xpath8 As String = "//SpecialOffer/ancestor::Item[@product = 'brad']"
' Invoke the correlation data function.
Public Shared xpath9 As String = "sm:correlation-data('CorrelationData1')"
Public Shared xpath10 As String = "sm:correlation-data('CorrelationData2')"
Public Shared xpath11 As String = "/s12:Envelope/s12:Body/PurchaseOrder/Items/Item[@quantity = 2]"
Public Shared Function CreateMessage() As Message
Dim stringReader As New StringReader(messageBody)
Dim xmlReader As New XmlTextReader(stringReader)
Dim message As Message = message.CreateMessage( _
MessageVersion.Soap12WSAddressing10, "http://purchaseorder", xmlReader)
' Add two correlation properties using lambda expressions. The property names are
' CorrelationData1 and CorrelationData2. The first goes to "value1" and the
' second to "value2". You can use your own property names and values.
Dim data As New CorrelationDataMessageProperty()
data.Add("CorrelationData1", Function() "value1")
data.Add("CorrelationData2", Function() "value2")
message.Properties(CorrelationDataMessageProperty.Name) = data
Return message
End Function
Public Shared Function SetupQueryCollection() As XPathMessageQueryCollection
' Create the query collection and add the XPath queries to it. To create
' the query, you must also use a new XPathMessageContext.
Dim queryCollection As New XPathMessageQueryCollection()
Dim context As XPathMessageContext = New XPathMessageContext()
queryCollection.Add(New XPathMessageQuery(xpath, context))
queryCollection.Add(New XPathMessageQuery(xpath2, context))
queryCollection.Add(New XPathMessageQuery(xpath3, context))
queryCollection.Add(New XPathMessageQuery(xpath4, context))
queryCollection.Add(New XPathMessageQuery(xpath5, context))
queryCollection.Add(New XPathMessageQuery(xpath6, context))
queryCollection.Add(New XPathMessageQuery(xpath7, context))
queryCollection.Add(New XPathMessageQuery(xpath8, context))
queryCollection.Add(New XPathMessageQuery(xpath9, context))
queryCollection.Add(New XPathMessageQuery(xpath10, context))
queryCollection.Add(New XPathMessageQuery(xpath11, context))
Return queryCollection
End Function
Public Shared Function SetupTable() As MessageQueryTable(Of String)
' This is optional code to demonstrate using a MessageQueryTable.
' Compare this to the MessageQueryCollection.
Dim table As MessageQueryTable(Of String) = New MessageQueryTable(Of String)()
Dim context As XPathMessageContext = New XPathMessageContext()
' The code adds a KeyValuePair to the table. Each pair requires
' a query used as the Key, and a value that is paired to the key.
table.Add(New XPathMessageQuery(xpath, context), "value10")
table.Add(New XPathMessageQuery(xpath2, context), "value20")
table.Add(New XPathMessageQuery(xpath3, context), "value30")
table.Add(New XPathMessageQuery(xpath4, context), "value40")
table.Add(New XPathMessageQuery(xpath5, context), "value50")
table.Add(New XPathMessageQuery(xpath6, context), "value60")
table.Add(New XPathMessageQuery(xpath7, context), "value70")
table.Add(New XPathMessageQuery(xpath8, context), "value80")
table.Add(New XPathMessageQuery(xpath9, context), "value90")
table.Add(New XPathMessageQuery(xpath10, context), "value100")
table.Add(New XPathMessageQuery(xpath11, context), "value110")
Return table
End Function
End Class
End Namespace
Constructeurs
MessageQueryTable<TItem>() |
Initialise une nouvelle instance de la classe MessageQueryTable<TItem>.Initializes a new instance of the MessageQueryTable<TItem> class. |
Propriétés
Count |
Obtient le nombre de paires de requêtes/données dans la table.Gets the number of query/data pairs in the table. |
IsReadOnly |
Obtient une valeur qui indique si la table est en lecture seule.Gets a value that indicates whether the table is read-only. |
Item[MessageQuery] |
Obtient ou définit l'objet de requête associé au type de données.Gets or sets the query object associated with the data type. |
Keys |
Retourne une collection de toutes les clés de collection contenues dans la table.Returns a collection of all the collection keys contained in the table. |
Values |
Obtient une collection des valeurs de résultat contenues dans la table.Gets a collection of the result values contained in the table. |
Méthodes
Add(KeyValuePair<MessageQuery,TItem>) |
Ajoute un élément défini comme une paire clé/valeur.Adds an item defined as a key/value pair. |
Add(MessageQuery, TItem) |
Ajoute un élément à la collection à l’aide d’un système clé/valeur.Adds an item to the collection using a key/value system. |
Clear() |
Supprime tous les membres de la collection.Removes all members from the collection. |
Contains(KeyValuePair<MessageQuery,TItem>) |
Détermine si la collection contient un élément spécifique mis en forme comme une structure clé/valeur.Determines whether the collection contains a specific item formatted as a key/value structure. |
ContainsKey(MessageQuery) |
Détermine si la collection contient un élément avec la clé spécifiée.Determines whether the collection contains an element with the specified key. |
CopyTo(KeyValuePair<MessageQuery,TItem>[], Int32) |
Copie les éléments de la collection dans un Array, en commençant par l'index spécifié.Copies the elements of the collection to an Array, starting at the specified index. |
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel.Determines whether the specified object is equal to the current object. (Hérité de Object) |
Evaluate<TResult>(Message) |
Exécute une requête relative au message et retourne une collection de résultats.Runs a query against the message and returns a collection of results. Le corps ne peut pas être recherché.The body cannot be queried. |
Evaluate<TResult>(MessageBuffer) |
Exécute une requête relative au message et retourne le résultat.Runs a query against the message and returns the result. |
GetEnumerator() |
Retourne un énumérateur qui itère au sein d’une collection.Returns an enumerator that iterates through a collection. |
GetHashCode() |
Sert de fonction de hachage par défaut.Serves as the default hash function. (Hérité de Object) |
GetType() |
Obtient le Type de l'instance actuelle.Gets the Type of the current instance. (Hérité de Object) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object. (Hérité de Object) |
Remove(KeyValuePair<MessageQuery,TItem>) |
Supprime la première occurrence de l'objet spécifié dans la collection.Removes the first occurrence of the specified object from the collection. |
Remove(MessageQuery) |
Supprime l’élément associé à la clé spécifiée de la collection.Removes the item associated with the specified key from the collection. |
ToString() |
Retourne une chaîne qui représente l'objet en cours.Returns a string that represents the current object. (Hérité de Object) |
TryGetValue(MessageQuery, TItem) |
Vérifie si une requête correspondante est stockée dans la table.Checks whether a matching query is stored in the table. |
Implémentations d’interfaces explicites
IEnumerable.GetEnumerator() |
Retourne un énumérateur qui peut être utilisé pour itérer au sein de la collection.Returns an enumerator that can be used to iterate through the collection. |
Méthodes d’extension
CopyToDataTable<T>(IEnumerable<T>) |
Retourne un DataTable qui contient des copies des objets DataRow, à partir d'un objet d'entrée IEnumerable<T> où le paramètre générique |
CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) |
Copie les objets DataRow vers le DataTable spécifié, à partir d'un objet d'entrée IEnumerable<T> où le paramètre générique |
CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) |
Copie les objets DataRow vers le DataTable spécifié, à partir d'un objet d'entrée IEnumerable<T> où le paramètre générique |
Cast<TResult>(IEnumerable) |
Effectue un cast des éléments d'un IEnumerable vers le type spécifié.Casts the elements of an IEnumerable to the specified type. |
OfType<TResult>(IEnumerable) |
Filtre les éléments d'un IEnumerable en fonction du type spécifié.Filters the elements of an IEnumerable based on a specified type. |
AsParallel(IEnumerable) |
Active la parallélisation d'une requête.Enables parallelization of a query. |
AsQueryable(IEnumerable) |
Convertit un IEnumerable en IQueryable.Converts an IEnumerable to an IQueryable. |
Ancestors<T>(IEnumerable<T>) |
Retourne une collection d'éléments qui contient les ancêtres de chaque nœud de la collection source.Returns a collection of elements that contains the ancestors of every node in the source collection. |
Ancestors<T>(IEnumerable<T>, XName) |
Retourne une collection d'éléments filtrée qui contient les ancêtres de chaque nœud de la collection source.Returns a filtered collection of elements that contains the ancestors of every node in the source collection. Seuls les éléments avec un XName correspondant sont inclus dans la collection.Only elements that have a matching XName are included in the collection. |
DescendantNodes<T>(IEnumerable<T>) |
Retourne une collection des nœuds descendants de chaque document et élément de la collection source.Returns a collection of the descendant nodes of every document and element in the source collection. |
Descendants<T>(IEnumerable<T>) |
Retourne une collection d'éléments qui contient les éléments descendants de tous les éléments et tous les documents de la collection source.Returns a collection of elements that contains the descendant elements of every element and document in the source collection. |
Descendants<T>(IEnumerable<T>, XName) |
Retourne une collection d'éléments filtrée qui contient les éléments descendants de tous les éléments et tous les documents de la collection source.Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. Seuls les éléments avec un XName correspondant sont inclus dans la collection.Only elements that have a matching XName are included in the collection. |
Elements<T>(IEnumerable<T>) |
Retourne une collection des éléments enfants de chaque élément et document de la collection source.Returns a collection of the child elements of every element and document in the source collection. |
Elements<T>(IEnumerable<T>, XName) |
Retourne une collection filtrée des éléments enfants de chaque élément et document de la collection source.Returns a filtered collection of the child elements of every element and document in the source collection. Seuls les éléments avec un XName correspondant sont inclus dans la collection.Only elements that have a matching XName are included in the collection. |
InDocumentOrder<T>(IEnumerable<T>) |
Retourne une collection de nœuds qui contient tous les nœuds de la collection source, triés selon l'ordre des documents.Returns a collection of nodes that contains all nodes in the source collection, sorted in document order. |
Nodes<T>(IEnumerable<T>) |
Retourne une collection des nœuds enfants de chaque document et élément de la collection source.Returns a collection of the child nodes of every document and element in the source collection. |
Remove<T>(IEnumerable<T>) |
Supprime chaque nœud de la collection source de son nœud parent.Removes every node in the source collection from its parent node. |