Partager via


Comment : utiliser des données de qualification

Vous pouvez assigner des données de qualification à un segment de pipeline à toute fin, en appliquant un ou plusieurs attributs QualificationDataAttribute au segment. Chaque attribut spécifie une simple paire nom/valeur de données de type chaîne. Par exemple, vous pouvez indiquer qu'un complément doit être activé avec la confiance totale en spécifiant le paire nom/valeur "Security" et "FullTrust." De la même façon, vous pouvez indiquer qu'un segment de pipeline doit être isolé dans son propre processus en spécifiant la paire nom/valeur "Isolation" et "NewProcess".

Pour appliquer des données de qualification à un segment de pipeline

  • Utilisez l'attribut QualificationDataAttribute.

    ' This pipeline segment has
    ' two attributes:
    ' 1 - An AddInAttribute to identify
    '     this segment as an add-in.
    '
    ' 2 - A QualificationDataAttribute to
    '     indicate that the add-in should
    '     be loaded into a new application domain.
    
    <AddIn("Calculator Add-in", Version:="2.0.0.0")> _
    <QualificationData("Isolation", "NewAppDomain")> _
        Public Class SampleV2AddIn
    
    // This pipeline segment has
    // two attributes:
    // 1 - An AddInAttribute to identify
    //     this segment as an add-in.
    //
    // 2 - A QualificationDataAttribute to
    //     indicate that the add-in should
    //     be loaded into a new application domain.
    
        [AddIn("Calculator Add-in",Version="2.0.0.0")]
        [QualificationData("Isolation", "NewAppDomain")]
        public class SampleV2AddIn : Calculator2
        {
    

Pour déterminer les données de qualification pour un segment de pipeline particulier

  • Utilisez la propriété QualificationData sur un objet AddInToken pour obtenir un dictionnaire de segments et leurs données de qualification associé au jeton, puis utilisez la valeur AddInSegmentType appropriée pour obtenir un dictionnaire qui contient les paires nom/valeur qui comprennent les données de qualification pour le segment désiré.

    ' Use qualification data to control
    ' how an add-in should be activated.
    
    If selectedToken.QualificationData(AddInSegmentType.AddIn)("Isolation").Equals("NewProcess") Then
        ' Create an external process.
        Dim external As AddInProcess = New AddInProcess
    
        ' Activate an add-in in an automatically generated
        ' application domain with a full trust security level.
        Dim CalcAddin5 As Calculator = _
            selectedToken.Activate(Of Calculator)(external, _
                AddInSecurityLevel.FullTrust)
        Console.WriteLine("Add-in activated per qualification data.")
    Else
        Console.WriteLine("This add-in is not designated to be activated in a new process.")
    End If
    
    // Use qualification data to control 
    // how an add-in should be activated.
    
    if (selectedToken.QualificationData[AddInSegmentType.AddIn]["Isolation"].Equals("NewProcess"))
    {
        // Create an external process.
        AddInProcess external = new AddInProcess();
    
        // Activate an add-in in the new process
        // with the full trust security level.
        Calculator CalcAddIn5 =
            selectedToken.Activate<Calculator>(external,
            AddInSecurityLevel.FullTrust);
        Console.WriteLine("Add-in activated per qualification data.");
    }
    else
        Console.WriteLine("This add-in is not designated to be activated in a new process.");
    

    S'il n'existe aucune donnée de qualification pour un segment, son dictionnaire de paires nom/valeur est vide.

    RemarqueRemarque

    Le modèle de complément n'utilise pas les données de qualification qui s'appliquent à la vue hôte du complément.En conséquence, le dictionnaire pour AddInSegmentType.HostViewOfAddIn est toujours vide.

Pour répertorier les données de qualification pour tous les segments de pipeline

  • Énumérez l'objet AddInToken comme s'il était une collection de structures QualificationDataItem.

    ' Show the qualification data for each
    ' token in an AddInToken collection.
    For Each token As AddInToken In tokens
        For Each qdi As QualificationDataItem In token
            Console.WriteLine("{0} {1}\n\t QD Name: {2}, QD Value: {3}", _
                token.Name, qdi.Segment, qdi.Name, qdi.Value)
        Next
    Next
    
    // Show the qualification data for each
    // token in an AddInToken collection.
    foreach (AddInToken token in tokens)
    {
        foreach (QualificationDataItem qdi in token)
        {
            Console.WriteLine("{0} {1}\n\t QD Name: {2}, QD Value: {3}",
                token.Name,
                qdi.Segment, 
                qdi.Name, 
                qdi.Value);
        }
    }
    
    
    RemarqueRemarque

    Le modèle de complément n'utilise pas les données de qualification qui s'appliquent à la vue hôte du complément.En conséquence, lorsque vous énumérerez les données de qualification vous ne trouverez pas tous les éléments dont la propriété Segment est AddInSegmentType.HostViewOfAddIn.

Voir aussi

Concepts

Compléments et extensibilité