我正在编写一个独立服务(不是最严格意义上的插件),使用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
[/编辑]
答案 0 :(得分: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);
然后使用此proxy
或context
来执行您需要的操作。