5 syntax changes in Dynamics CRM 2011 plugins
There are number of changes between Dynamics CRM 2011 SDK and CRM 4 SDK. Let’s take a look at what has changed between plugins.
1. The IPlugin now resides in Microsoft.Xrm.Sdk namespace instead of Microsoft.Crm.Sdk | |
public class ClassName : Microsoft.Crm.Sdk.IPlugin public class ClassName : Microsoft.Xrm.Sdk.IPlugin | |
2. The Execute method signature of the IPlugin interface has changed, it now expects an IServiceProvider instead of the IPluginExecutionContext. | |
public void Execute(IPluginExecutionContext context) public void Execute(IServiceProvider serviceProvider) | |
3. To get a reference to the IPluginExecutionContext you now need to call the GetService method of the IServiceProvider interface. | |
public void Execute(IPluginExecutionContext context) Microsoft.Xrm.Sdk.IPluginExecutionContext context =(Microsoft.Xrm.Sdk.IPluginExecutionContext) serviceProvider.GetService(typeof(Microsoft.Xrm.Sdk.IPluginExecutionContext));
| |
4. ICrmService has been changed to IOrganizationService. | |
ICrmService sdk = context.CreateCrmService(true); IOrganizationServiceFactory factory = (IOrganizationServiceFactory) serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService sdk = factory.CreateOrganizationService(context.UserId);
| |
5. DynamicEntity has been changed to Entity. eg: no more KeyProperty, StringProperty…etc, simply do int value = (int)entity[“schema_name”]; | |
if (context.InputParameters.Properties.Contains("Target") && context.InputParameters.Properties["Target"] is DynamicEntity) if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
If any query please let me know.
Thanks & Cheers!!!
|