كيفية القيام بما يلي: إنشاء ملحق مشروع SharePoint
إنشاء ملحق مشروع عندما تريد إضافة وظيفة إلى أي مشروع SharePoint مفتوح في Visual Studio. لمزيد من المعلومات، راجع توسيع النظام مشروع SharePoint.
إلى إنشاء ملحق مشروع
إلى إنشاء مشروع مكتبة فئة
إضافة مراجع إلى التجميعات التالية.
Microsoft.VisualStudio.SharePoint
النظام.ComponentModel.إنشاء
إنشاء الفئة التي تطبق ISharePointProjectExtension واجهة.
إضافة System.ComponentModel.Composition.ExportAttributeإلى فئة. تمكّن هذه السمة Visual Studio إلى اكتشاف وتحميل الخاص بك ISharePointProjectExtensionالتنفيذ. تمرير ISharePointProjectExtensionنوع السمة الدالة الإنشائية.
في التطبيق من Initializeأسلوب استخدام الأعضاء projectServiceالمعلمة إضافة ميزات إلى العقدة. هذه المعلمة هي ISharePointProjectServiceالكائن الذي يوفر الوصول إلى الأحداث المعرفة في ISharePointProjectEventsالواجهة.
المثال
يوضح المثال التعليمات البرمجية التالي كيفية إنشاء ملحق مشروع بسيطة معالجة معظم الأحداث المشروع SharePoint التي تم تعريفها بواسطة ISharePointProjectEvents واجهة. لاختبار التعليمة البرمجية إنشاء مشروع SharePoint في Visual Studio ثم قم بإضافة المزيد من المشاريع إلى الحل قم بتغيير المشروع صواب قيم, أو حذفها أو استبعاد المشروع. الملحق بإعلامك الأحداث بواسطة كتابة الرسائل إلى إطار صواب وإطار قائمة خطأ .
Imports Microsoft.VisualStudio.SharePoint
Imports System.ComponentModel
Imports System.ComponentModel.Composition
Namespace Contoso.ExampleProjectExtension
<Export(GetType(ISharePointProjectExtension))> _
Class ExampleProjectExtension
Implements ISharePointProjectExtension
Private WithEvents projectService As ISharePointProjectService
Public Sub Initialize(ByVal projectService As ISharePointProjectService) _
Implements ISharePointProjectExtension.Initialize
Me.projectService = projectService
End Sub
' A project was added.
Private Sub projectService_ProjectAdded(ByVal sender As Object, ByVal e As SharePointProjectEventArgs) _
Handles projectService.ProjectAdded
Dim project As ISharePointProject = CType(sender, ISharePointProject)
Dim message As String = String.Format("The following project was added: {0}", e.Project.Name)
project.ProjectService.Logger.WriteLine(message, LogCategory.Message)
End Sub
' A project was loaded in the IDE.
Private Sub projectService_ProjectInitialized(ByVal sender As Object, ByVal e As SharePointProjectEventArgs) _
Handles projectService.ProjectInitialized
Dim project As ISharePointProject = CType(sender, ISharePointProject)
Dim message As String = String.Format("The following project is being initialized: {0}", e.Project.Name)
project.ProjectService.Logger.WriteLine(message, LogCategory.Message)
End Sub
' The name of a property was changed.
Private Sub projectService_ProjectNameChanged(ByVal sender As Object, ByVal e As NameChangedEventArgs) _
Handles projectService.ProjectNameChanged
Dim project As ISharePointProject = CType(sender, ISharePointProject)
Dim message As String = String.Format("The project named {0} was changed to {1}.", e.OldName, project.Name)
project.ProjectService.Logger.WriteLine(message, LogCategory.Message)
End Sub
' A project property value was changed.
Private Sub ProjectPropertyChanged(ByVal sender As Object, ByVal e As PropertyChangedEventArgs) _
Handles projectService.ProjectPropertyChanged
Dim project As ISharePointProject = CType(sender, ISharePointProject)
Dim message As String = String.Format("The following property of the {0} project was changed: {1}",
project.Name, e.PropertyName)
project.ProjectService.Logger.WriteLine(message, LogCategory.Message)
End Sub
' A project is being removed or unloaded.
Private Sub projectService_ProjectRemoved(ByVal sender As Object, ByVal e As SharePointProjectEventArgs) _
Handles projectService.ProjectRemoved
Dim project As ISharePointProject = CType(sender, ISharePointProject)
Dim message As String = String.Format("The following project is being removed or unloaded: {0}", e.Project.Name)
project.ProjectService.Logger.WriteLine(message, LogCategory.Message)
End Sub
' A project was removed or unloaded.
Private Sub projectService_ProjectDisposing(ByVal sender As Object, ByVal e As SharePointProjectEventArgs) _
Handles projectService.ProjectDisposing
Dim project As ISharePointProject = CType(sender, ISharePointProject)
Dim message As String = String.Format("The following project was removed or unloaded: {0}", e.Project.Name)
project.ProjectService.Logger.WriteLine(message, LogCategory.Message)
End Sub
End Class
End Namespace
using Microsoft.VisualStudio.SharePoint;
using System;
using System.ComponentModel;
using System.ComponentModel.Composition;
namespace Contoso.ExampleProjectExtension
{
[Export(typeof(ISharePointProjectExtension))]
internal class ExampleProjectExtension : ISharePointProjectExtension
{
public void Initialize(ISharePointProjectService projectService)
{
projectService.ProjectAdded += projectService_ProjectAdded;
projectService.ProjectInitialized += projectService_ProjectInitialized;
projectService.ProjectNameChanged += projectService_ProjectNameChanged;
projectService.ProjectPropertyChanged += projectService_ProjectPropertyChanged;
projectService.ProjectRemoved += projectService_ProjectRemoved;
projectService.ProjectDisposing += projectService_ProjectDisposing;
}
// A project was added.
void projectService_ProjectAdded(object sender, SharePointProjectEventArgs e)
{
ISharePointProject project = (ISharePointProject)sender;
string message = String.Format("The following project was added: {0}",
e.Project.Name);
project.ProjectService.Logger.WriteLine(message, LogCategory.Message);
}
// A project is loaded in the IDE.
void projectService_ProjectInitialized(object sender, SharePointProjectEventArgs e)
{
ISharePointProject project = (ISharePointProject)sender;
string message = String.Format("The following project is being initialized: {0}",
e.Project.Name);
project.ProjectService.Logger.WriteLine(message, LogCategory.Message);
}
// The name of a project was changed.
void projectService_ProjectNameChanged(object sender, NameChangedEventArgs e)
{
ISharePointProject project = (ISharePointProject)sender;
string message = String.Format("The project named {0} was changed to {1}.",
e.OldName, project.Name);
project.ProjectService.Logger.WriteLine(message, LogCategory.Message);
}
// A project property value was changed.
private void projectService_ProjectPropertyChanged(object sender, PropertyChangedEventArgs e)
{
ISharePointProject project = (ISharePointProject)sender;
string message = String.Format("The following property of the {0} project was changed: {1}",
project.Name, e.PropertyName);
project.ProjectService.Logger.WriteLine(message, LogCategory.Message);
}
// A project is being removed or unloaded.
void projectService_ProjectRemoved(object sender, SharePointProjectEventArgs e)
{
ISharePointProject project = (ISharePointProject)sender;
string message = String.Format("The following project is being removed or unloaded: {0}",
e.Project.Name);
project.ProjectService.Logger.WriteLine(message, LogCategory.Message);
}
// A project was removed or unloaded.
void projectService_ProjectDisposing(object sender, SharePointProjectEventArgs e)
{
ISharePointProject project = (ISharePointProject)sender;
string message = String.Format("The following project was removed or unloaded: {0}",
e.Project.Name);
project.ProjectService.Logger.WriteLine(message, LogCategory.Message);
}
}
}
يستخدم هذا المثال الخدمة المشروع SharePoint لكتابة الرسالة إلى النافذة إخراج ونافذة قائمة خطأ . لمزيد من المعلومات، راجع باستخدام الخدمة SharePoint مشروع.
للحصول على أمثلة شرح كيفية صواب معالجة في ProjectMenuItemsRequested و ProjectPropertiesRequested الأحداث، راجع كيفية القيام بما يلي: إضافة اختصار قائمة عنصر إلى مشاريع SharePoint و كيفية القيام بما يلي: إضافة خاصية وقت تصميم إلى مشاريع SharePoint.
التحويل البرمجي للتعليمات البرمجية
يتطلب هذا المثال مراجع إلى التجميعات التالية:
Microsoft.VisualStudio.SharePoint
النظام.ComponentModel.إنشاء
نشر في ملحق
إلى توزيع الملحق ، إنشاء Visual Studioملحق (VSIX) في حزمة التجميع "و" وأي ملفات أخرى تريد إلى توزيع مع الملحق. لمزيد من المعلومات، راجع تصحيح الأخطاء ملحقات لأدوات SharePoint في Visual Studio.
راجع أيضًا:
المبادئ
موارد أخرى
كيفية القيام بما يلي: إضافة اختصار قائمة عنصر إلى مشاريع SharePoint
كيفية القيام بما يلي: إضافة خاصية وقت تصميم إلى مشاريع SharePoint