1

我正在阅读一些写得很糟糕的代码,而我的大脑刚刚关闭,主要是由于沮丧,所以这个问题可能很简单。

我在一个插件中,我需要创建一个实体Blobb的新实例。鉴于我已经完成了查询表达式,我该如何执行它?我必须通过创建OrganizationServiceProxy对象还是可以使用发送到Execute方法的IServiceProvider实例?我正在使用它来获取上下文(即IPluginExecutionContext类型对象),但我找不到具有执行查询表达式的方法的服务。

4

1 回答 1

1

我想你正在寻找这个。您可以使用 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);
    }
}

编辑

您可以 OrganizationServicelocalContext.OrganizationService

IOrganizationService service = localContext.OrganizationService;
于 2013-08-08T10:33:01.120 回答