Внутри плагина вы получите весь контекст выполнения конвейера и доступ к сервису организации, чтобы расширить бизнес-функциональность в том же конвейере.
Эти фрагменты кода ниже представляют собой базовый код, который даст вам различныенеобходимые части, такие как служба трассировки для ведения журнала, контекст для получения целевой сущности, изображения и т. д. и IOrganizationService
для выполнения вызовов службы, таких как обновление, извлечение и т. д., обеспечивают расширение платформы.
Как вы знаете, будет одиноткрытый класс в плагине и единственный открытый метод Execute(IServiceProvider serviceProvider)
, и мы получим все, используя этот единственный параметр serviceProvider
// Obtain the tracing service
ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
// Obtain the execution context from the service provider.
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
// Obtain the organization service reference which you will need for
// web service calls.
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
Когда вы хотите запросить другие номера проектов из базы данных,используйте метод service.RetrieveMultiple
для запроса.Вы можете передать запрос fetchxml или использовать выражение запроса, чтобы сделать это.
Вы можете найти множество примеров в Интернете. Пример для стартера .