In this post we will look at how to code 2 plugins in one assembly. This might be useful if you want to keep related pieces of code under the same code base.
Let’s create a new VS project:
Rename the class to Plugins:
Add Microsoft.CrmSdk.CoreAssemblies through NuGet.
Add the code. We will add 2 functions, Plugin1 and Plugin2:
The code will write a Plugin Trace Log entry.
using System; |
using System.Collections.Generic; |
using System.Linq; |
using System.Text; |
using System.Threading.Tasks; |
using Microsoft.Xrm.Sdk; |
namespace Carl.MultiplePlugins |
{ |
public class Plugin1 : IPlugin |
{ |
public void Execute(IServiceProvider serviceProvider) |
{ |
ITracingService tracingService = (ITracingService)serviceProvider.GetService( typeof (ITracingService)); |
tracingService.Trace( "Plugin 1." ); |
} |
} |
public class Plugin2 : IPlugin |
{ |
public void Execute(IServiceProvider serviceProvider) |
{ |
ITracingService tracingService = (ITracingService)serviceProvider.GetService( typeof (ITracingService)); |
tracingService.Trace( "Plugin 2." ); |
} |
} |
} |
Sign and build the project.
Now in the Plugin Registration Tool, select the assembly to register it. We see it is picking up there are 2 plugins:
And 2 have been registered:
We see the plugins:
Right-click the first plugin to add a step:
Let’s run this on create of an Account:
And the second one, create of a Contact:
Ensure plugin tracing is turned on in System Settings.
Now create an Account.
Go to Plugin Trace Logs in Advanced Find:
Plugin 1 is written to the log:
Now create a Contact. Plugin 2 has run.
I AM SPENDING MORE TIME THESE DAYS CREATING YOUTUBE VIDEOS TO HELP PEOPLE LEARN THE MICROSOFT POWER PLATFORM.
IF YOU WOULD LIKE TO SEE HOW I BUILD APPS, OR FIND SOMETHING USEFUL READING MY BLOG, I WOULD REALLY APPRECIATE YOU SUBSCRIBING TO MY YOUTUBE CHANNEL.
THANK YOU, AND LET'S KEEP LEARNING TOGETHER.
CARL