我正在阅读一些写得很糟糕的代码,而我的大脑刚刚关闭,主要是由于沮丧,所以这个问题可能很简单。
我在一个插件中,我需要创建一个实体Blobb的新实例。鉴于我已经完成了查询表达式,我该如何执行它?我必须通过创建OrganizationServiceProxy对象还是可以使用发送到Execute方法的IServiceProvider实例?我正在使用它来获取上下文(即IPluginExecutionContext类型对象),但我找不到具有执行查询表达式的方法的服务。
我正在阅读一些写得很糟糕的代码,而我的大脑刚刚关闭,主要是由于沮丧,所以这个问题可能很简单。
我在一个插件中,我需要创建一个实体Blobb的新实例。鉴于我已经完成了查询表达式,我该如何执行它?我必须通过创建OrganizationServiceProxy对象还是可以使用发送到Execute方法的IServiceProvider实例?我正在使用它来获取上下文(即IPluginExecutionContext类型对象),但我找不到具有执行查询表达式的方法的服务。
我想你正在寻找这个。您可以使用 Execute 来使用LocalPluginContext
。
public class OrgPlugin: Plugin
{
public OrgPlugin()
: base(typeof(OrgPlugin))
{
base.RegisteredEvents.Add(new Tuple<int, string, string, Action<LocalPluginContext>>(20, "Create", "account", new Action<LocalPluginContext>(ExecuteOrgPlugin)));
}
protected void ExecuteOrgPlugin(LocalPluginContext localContext)
{
Blobb blobb = new Blobb();
blobb["new_name"] = "abc";
// Other attributes here
localContext.OrganizationService.Execute(blobb);
}
}
编辑
您可以 OrganizationService
从localContext.OrganizationService
IOrganizationService service = localContext.OrganizationService;