Gewusst wie: Verwenden von Qualifizierungsdaten
Aktualisiert: November 2007
Sie können einem Pipelinesegment zu jedem Zweck Qualifizierungsdaten zuweisen, indem Sie mindestens ein QualificationDataAttribute-Attribut auf das Segment anwenden. Jedes Attribut gibt ein einfaches Name-Wert-Paar aus Zeichenfolgendaten an. Sie können z. B. angeben, dass ein Add-In mit voller Vertrauenswürdigkeit aktiviert werden soll, indem Sie das Name-Wert-Paar "Security" und "FullTrust" angeben. Sie können ebenso angeben, dass ein Pipelinesegment in seinem eigenen Prozess isoliert werden soll, indem Sie das Name-Wert-Paar "Isolation" und "NewProcess" angeben.
So übernehmen Sie Qualifizierungsdaten für ein Pipelinesegment
Verwenden Sie das QualificationDataAttribute-Attribut.
' 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 {
So bestimmen Sie die Qualifizierungsdaten für ein bestimmtes Pipelinesegment
Verwenden Sie die QualificationData-Eigenschaft in einem AddInToken-Objekt, um ein Wörterbuch von Segmenten und ihren dem Token zugewiesenen Qualifizierungsdaten zu erhalten. Verwenden Sie anschließend den entsprechenden AddInSegmentType-Wert, um ein Wörterbuch mit den Name-Wert-Paaren zu erhalten, aus denen die Qualifizierungsdaten für das gewünschte Segment bestehen.
' 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.");
Wenn es für ein Segment keine Qualifikationsdaten gibt, ist das Wörterbuch für die Name-Wert-Paare leer.
Hinweis: Im Add-In-Modell werden keine auf die Hostansicht des Add-Ins angewendeten Qualifizierungsdaten verwendet. Daher ist das Wörterbuch für AddInSegmentType.HostViewOfAddIn immer leer.
So listen Sie die Qualifizierungsdaten für alle Pipelinesegmente auf
Listen Sie das AddInToken-Objekt wie eine Auflistung von QualificationDataItem-Strukturen auf.
' 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); } }
Hinweis: Im Add-In-Modell werden keine auf die Hostansicht des Add-Ins angewendeten Qualifizierungsdaten verwendet. Wenn Sie Qualifizierungsdaten auflisten, werden daher keine Elemente angegeben, deren Segment-Eigenschaft auf AddInSegmentType.HostViewOfAddIn festgelegt ist.