1

我为我的 CRM 组织生成了 ServiceContext。我能够正确连接到 CRM。由于我在 app.config 文件中有所有上下文配置,我想知道是否可以从已经实例化的 OrganizationServiceContext 中获取 IOrganizationService?

4

1 回答 1

0

当我需要从多个地方访问服务引用时,我通常分两步完成。首先,我尝试查看是否可以将其传递给被调用的方法(我假设您有类似以下的内容)。

using (IOrganizationService service 
  = (IOrganizationService) new OrganizationServiceProxy(...))
{
  DoSomething();
  DoSomething(service);
}

private void DoSomething(IOrganizationService service) { ... }

当它失败时(由于技术设置或单纯的愚蠢),我设置了一个私有属性并在构造函数(或至少第一个调用方法)中为其分配一个值,以便将来像这样访问。

class MyClass
{
  private IOrganization _service;
  private IOrganization _Service
  {
    get
    {
      if(_service == null)
        _service = (IOrganizationService) new OrganizationServiceProxy(...);
      return _service;
    }
  }
  ...
}

如果您有很多在服务器上运行的代码,您可能希望将所有这些内容移到一个单独的类中并对其进行调用(使用上面讨论的属性设置)。

我不完全确定我是否正确地回答了你的问题,所以如果我错过了你的观点,那就太好了。

于 2013-01-21T22:34:47.073 回答