Partager via


Procédure : supprimer une propriété gérée

L'objet Schema du modèle objet Administration d'Recherche de contenu d'entreprise fournit l'accès aux propriétés gérées configurées pour le service de recherche d'un fournisseur de services partagés. Pour plus d'informations sur l'objet Schema, voir Gestion des métadonnées.

La procédure suivante montre comment supprimer par programme une propriété gérée à l'aide du modèle objet Administration d'Recherche de contenu d'entreprise dans une application console.

Pour supprimer une propriété gérée à partir d'une application console

  1. Dans votre application, affectez des références aux DLL suivantes :

    • Microsoft.SharePoint.dll

    • Microsoft.Office.Server.dll

    • Microsoft.Office.Server.Search.dll

  2. Dans le fichier de classe de l'application console, ajoutez les instructions using suivantes au début du code avec les autres directives d'espaces de noms.

    using Microsoft.SharePoint;
    using Microsoft.Office.Server.Search.Administration;
    
  3. Créez une fonction qui écrit les informations d'utilisation dans la fenêtre de console.

    static void Usage()
    {
      Console.WriteLine("Delete Managed Properties Sample");
      Console.WriteLine("Usage: DeleteManagedPropertiesSample.exe  PropertyName");
    }
    
  4. Dans la fonction Main() de l'application console, ajoutez du code pour vérifier le nombre d'éléments présents dans le paramètre args[]. Il doit être égal à 1. Si ce n'est pas le cas, appelez la fonction Usage() définie à l'étape 3.

    if (args.Length != 1)
    {
    Usage();
    return;
    }
    
  5. Récupérez la valeur spécifiée dans le paramètre args[], pour indiquer le nom de la propriété gérée à supprimer.

    string strName = args[0];
    
  6. Pour récupérer l'objet Schema pour le contexte de recherche du fournisseur de services partagés, ajoutez le code suivant. Pour plus d'informations sur les méthodes de récupération de contexte de recherche, voir Procédure : renvoyer le contexte de recherche pour le fournisseur du service de recherche.

    /*
    Replace <SiteName> with the name of a site using the SSP
    */
    string strURL = "http://<SiteName>";
    Schema sspSchema = new Schema(SearchContext.GetContext(new SPSite(strURL)));
    
  7. Récupérez la collection de propriétés gérées à l'aide du code suivant.

    ManagedPropertyCollection properties = sspSchema.AllManagedProperties;
    
  8. Déterminez si la collection de propriétés gérées comprend la propriété spécifiée.

    if (properties.Contains(strName))
    {
       Console.WriteLine(strName + " property does not exist.  Delete failed.");
       return;
    }
    
  9. Si la méthode Contains retourne la valeur true, parcourez les propriétés gérées, et pour chacune d'entre elles vérifiez si la propriété Name correspond à la valeur de strName.

    foreach (ManagedProperty property in properties)
    {
        if (property.Name == strName)
        {
    
  10. Ensuite, assurez-vous que la propriété peut être supprimée en vérifiant la valeur de la propriété DeleteDisallowed.

    if (property.DeleteDisallowed)
    {
       Console.WriteLine("DeleteDisallowed enabled for " + strName + ".  Delete failed.");
       return;
    } 
    
  11. Si la propriété DeleteDisallowed retourne la valeur false, appelez la méthode DeleteAllMappings, puis la méthode Delete pour la propriété.

       property.DeleteAllMappings();
       property.Delete();
       Console.WriteLine(strName + " deleted.");
       return;
     }
    }
    

Exemple

Voici le code complet de la classe d'application console d'exemple.

Conditions préalables requises

  • Vérifiez qu'un fournisseur de services partagés existe déjà.

Références de projet

Ajoutez les références de projet suivantes dans le projet de code d'application console avant d'exécuter cet exemple :

  • Microsoft.SharePoint

  • Microsoft.Office.Server

  • Microsoft.Office.Server.Search

using System;
using System.Collections;
using System.Text;
using Microsoft.Office.Server.Search.Administration;
using Microsoft.SharePoint;

namespace DeleteManagedPropertiesSample
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                if (args.Length != 1)
                {
                    Usage();
                    return;
                }
                string strName = args[0];

 /*
Replace <SiteName> with the name of a site using the SSP
*/
   string strURL = "http://<SiteName>";

                Schema sspSchema = new Schema(SearchContext.GetContext(new SPSite(strURL)));
                ManagedPropertyCollection properties = sspSchema.AllManagedProperties;
                if (!properties.Contains(strName))
                {
                    Console.WriteLine(strName + " property does not exist.  Delete failed.");
                    return;
                }
                foreach (ManagedProperty property in properties)
                {
                    if (property.Name == strName)
                    {
                        if (property.DeleteDisallowed)
                        {
                            Console.WriteLine("DeleteDisallowed enabled for " + strName + ".  Delete failed.");
  return;
                        }

                        property.DeleteAllMappings();
                        property.Delete();
                        Console.WriteLine(strName + " deleted.");
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }

        private static void Usage()
        {
            Console.WriteLine("Delete Managed Properties Sample");
            Console.WriteLine("Usage: DeleteManagedPropertiesSample.exe  PropertyName");
        }
    }
}

Voir aussi

Autres ressources

Gestion des métadonnées
Procédure : renvoyer le contexte de recherche pour le fournisseur du service de recherche
Procédure : récupérer les propriétés gérées pour un fournisseur de services partagés
Procédure : créer une propriété gérée