Gewusst wie: Erstellen von benutzerdefinierten Funktions- und Paketvalidierungsregeln für SharePoint-Lösungen
Zum Überprüfen des von Visual Studio generierten Lösungspakets können benutzerdefinierte Validierungsregeln erstellt werden. Sie können eine umfassende Validierung einer vollständigen Funktion oder eines vollständigen Pakets ausführen, indem Sie im Paket-Explorer im Kontextmenü einer Funktion oder eines Pakets die Option Überprüfen auswählen. Eine Teilvalidierung wird ausgeführt, wenn Sie dem Projekt neue SharePoint-Projektelemente oder -Funktionen hinzufügen, um zu ermitteln, ob das Paket oder die Funktion einen gültigen Zustand aufweist.
So erstellen Sie eine benutzerdefinierte Paketvalidierungsregel
Erstellen Sie ein Klassenbibliotheksprojekt.
Fügen Sie Verweise auf die folgenden Assemblys hinzu:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Erstellen Sie eine Klasse, von der eine der folgenden Schnittstellen implementiert wird:
Implementieren Sie zum Erstellen einer Paketvalidierungsregel die IPackageValidationRule-Schnittstelle.
Implementieren Sie zum Erstellen einer Funktionsvalidierungsregel die IFeatureValidationRule-Schnittstelle.
Fügen Sie der Klasse System.ComponentModel.Composition.ExportAttribute hinzu. Anhand dieses Attributs kann die Validierungsregel von Visual Studio erkannt und geladen werden. Übergeben Sie den IPackageValidationRule-Typ oder den IFeatureValidationRule-Typ an den Attributkonstruktor.
Beispiel
Im folgenden Codebeispiel wird das Erstellen einer benutzerdefinierten Funktionsvalidierungsregel veranschaulicht:
Imports Microsoft.VisualStudio.SharePoint
Imports Microsoft.VisualStudio.SharePoint.Validation
Imports System.ComponentModel.Composition
<Export(GetType(IFeatureValidationRule))> _
Public Class CustomFeatureValidationRule
Implements IFeatureValidationRule
Public Sub ValidateFeature(ByVal context As IFeatureValidationContext) _
Implements IFeatureValidationRule.ValidateFeature
For Each projectItem In context.Feature.ProjectItems
ValidateProjectItem(context, projectItem)
Next projectItem
End Sub
Public Sub ValidateProjectItem(ByVal context As IFeatureValidationContext, _
ByVal projectItem As ISharePointProjectItem) _
Implements IFeatureValidationRule.ValidateProjectItem
If projectItem.Name = "" Then
context.RuleViolations.Add( _
"CustomFeatureValidationRule001", _
ValidationRuleViolationSeverity.Warning, _
"SharePoint project items must have a name.")
End If
End Sub
End Class
using Microsoft.VisualStudio.SharePoint;
using Microsoft.VisualStudio.SharePoint.Validation;
using System.ComponentModel.Composition;
namespace Extension
{
[Export(typeof(IFeatureValidationRule))]
internal class CustomFeatureValidationRule : IFeatureValidationRule
{
public void ValidateFeature(IFeatureValidationContext context)
{
foreach (var projectItem in context.Feature.ProjectItems)
{
ValidateProjectItem(context, projectItem);
}
}
public void ValidateProjectItem(
IFeatureValidationContext context,
ISharePointProjectItem projectItem)
{
if (projectItem.Name == "")
{
context.RuleViolations.Add(
"CustomFeatureValidationRule001",
ValidationRuleViolationSeverity.Warning,
"SharePoint project items must have a name.");
}
}
}
}
Kompilieren des Codes
Für dieses Beispiel sind Verweise auf die folgenden Assemblys erforderlich:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Bereitstellen der Erweiterung
Erstellen Sie für die Assembly und alle weiteren Dateien, die Sie mit der Erweiterung verteilen möchten, ein Visual Studio-Erweiterungspaket (VSIX-Datei), um die Erweiterung bereitzustellen. Weitere Informationen finden Sie unter Bereitstellen von Erweiterungen für die SharePoint-Tools in Visual Studio.