1

我正在编写一个独立的服务(不是插件,在最严格的意义上),以使用 SDK 定期更新 Dynamics CRM 2011。

我的代码包括以下内容:

// Get entity metadata so we can process attributes correctly
IPluginExecutionContext context = (IPluginExecutionContext)ServiceProvider.GetService(typeof(IPluginExecutionContext));
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)ServiceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
... (etc)

这需要一个 ServiceProvider 类的实例 [它实现了 IServiceProvider],但我不知道如何获得它。

那么,我该如何获得呢?

谢谢

[编辑]

我目前正在考虑使用 ServerConnection 作为替代方案。

http://msdn.microsoft.com/en-us/library/gg309393.aspx

[/编辑]

4

1 回答 1

0

我整理好了

来自http://markuserlandsson.wordpress.com/2011/01/26/my-first-crm-2011-project-part-1/

(为安全起见,此处转载)

ClientCredentials credentials = new ClientCredentials();
credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;

IServiceConfiguration<IOrganizationService> config = 
        ServiceConfigurationFactory.CreateConfiguration<IOrganizationService>(
        new Uri(Properties.Settings.Default.CrmUrl));
config.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());

OrganizationServiceProxy proxy = new OrganizationServiceProxy(config, credentials);
OrganizationServiceContext context = new OrganizationServiceContext(proxy);

然后使用它proxycontext做你需要的。

于 2012-08-31T15:55:52.820 回答