2008-11-11 10 views
26

J'ai vu cela dans de nombreux commentaires XML pour les classes du .NET Framework BCL mais je n'ai jamais trouvé de documentation expliquant ce qu'il fait.Que fait la balise filterpriority dans un commentaire XML?

À titre d'exemple, en regardant System.Object révèle les commentaires suivants:

namespace System 
{ 
    /// <summary>Supports all classes in the .NET Framework class hierarchy 
    /// and provides low-level services to derived classes. This is the 
    /// ultimate base class of all classes in the .NET Framework; it is the 
    /// root of the type hierarchy.</summary> 
    /// <filterpriority>1</filterpriority> 
    [System.Runtime.InteropServices.ClassInterfaceAttribute(2)] 
    public class Object  
    {  
     /// <summary>Determines whether the specified 
     /// <see cref="T:System.Object" /> 
     /// instances are considered equal.</summary> 
     /// <returns>true if objA is the same instance as objB or 
     /// if both are null 
     /// references or if objA.Equals(objB) returns true; 
     /// otherwise, false.</returns> 
     /// <param name="objB">The second <see cref="T:System.Object" /> 
     /// to compare. </param> 
     /// <param name="objA">The first <see cref="T:System.Object" /> 
     /// to compare. </param> 
     /// <filterpriority>2</filterpriority> 
     public static bool Equals(object objA, object objB); 
    } 
} 

Répondre

16

Juste une supposition: All vs onglets communs à IntelliSense?

+0

Cela pourrait être, mais ces onglets ne sont disponibles que dans l'IDE pour les projets VB non C#. Donc, si c'est vraiment une fonctionnalité C# seulement qui ne s'appliquerait pas. –

+4

Il s'avère que vous avez raison et que c'est une fonctionnalité VB seulement. Une priorité de filtre = 2 est équiavalente à EditorBrowsable (EditorBrowsableState.Advanced) et la méthode n'apparaît que dans l'onglet "Tous". Vous devez avoir un fichier de commentaires XML généré pour que cela fonctionne. C# semble ignorer le commentaire. –

+1

Pouvez-vous poster un lien vers l'endroit où vous l'avez trouvé? Je suis curieux parce que je me demande comment il se comporterait si le xml n'était pas d'accord avec l'attribut. –

6

Cela revient à décorer votre membre avec EditorBrowsableAttribute. Je suppose que les valeurs 0,1 et 2 correspondent à Toujours, Avancé et Jamais.

+0

En quoi un commentaire XML est-il le même que la décoration avec le composant EditorBrowsableAttribute? –

+0

Pour être plus précis; il a le même effet dans Visual Studio. Il détermine ce que les membres ne doivent pas afficher dans la liste déroulante Intellisense. –

+1

Il s'avère que Joel était correct et que cela détermine l'onglet IntelliSense sur lequel la méthode apparaît dans VB.NET. Vous avez également raison en ce qu'il fournit le même comportement sur intellisense que l'attribut EditorBrowsable (EditorBrowsableState.Advanced). –