Dataverse API #
IPlugin & IServiceProvider #
若要開發Plugins,可以實作Dataverse SDK提供的IPlugin介面,旗下會有一個唯一需要實作的方法叫做Execute
public sealed class MyFirstPlugin : IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
//Business Logic
}
}
其中唯一參數IServiceProvider介面有提供一個GetService方法,可以用來取得Plugin可用的Service。一般來說我們會透過Factory取得三個物件:
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
ITracingService tracer = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
- IOrganizationServiceFactory - 提供OrganizationService的存取方法,以存取plugin資料。
- IPluginExecutionContext - 提供Plugin執行的上下文資訊,例如執行的階段、訊息名稱、輸入參數等。
- ITracingService - 提供Plugin的追蹤服務,可以使用來記錄Plugin的執行過程,類似於Logger。