在日常的开发中,免不了需要使用早期绑定来解决些问题。目前我们可以使用两种绑定方法:早期绑定和晚期绑定。至于他们之间的差异不好评价,各有各的特点,现在我们来看看怎么在插件中来使用早期绑定。
步骤如下:
图1
图2
图3
图4
图5
图6
图7
图8
插件代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Messages;
using Microsoft.Xrm.Sdk.Query;
using CRMENTITY;
namespace Plugin23
{
public class TestEarlyBound:IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
IOrganizationServiceFactory factory=(IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service=factory.CreateOrganizationService(null);
QueryExpression query = new QueryExpression();
query.ColumnSet = new ColumnSet { AllColumns = true };
query.EntityName = Contact.EntityLogicalName;
EntityCollection result = service.RetrieveMultiple(query);
string msg = string.Empty;
foreach (var c in result.Entities)
{
msg += c["lastname"].ToString()+"\n";
}
throw new InvalidPluginExecutionException(msg);
}
}
}
小结
这里我没有把用“crmsvcutil.exe” 工具导出来的代码嵌入到插件里面中,而是将它制作成了一个DLL文件,并把它放在Bin目录中。这么做至少有以下优点:
1.方便维护
2.避免冲突