lar*_*son 4 .net dynamics-crm-2011
我想创建一个VS 2010 C#控制台应用程序,它连接到两个(或更多)不同的CRM 2011 servicecontexts/tenants.我希望能够使用另一个数据更新数据.
如果我使用crmsvcutil创建两个不同的早期绑定类,我会收到编译器错误:"Duplicate'Microsoft.Xrm.Sdk.Client.ProxyTypesAssemblyAttribute'attribute"
如果我连接这两个文件,它会编译,但后来我得到一个运行时错误:"具有名称帐户的代理类型已被多种类型定义".
如何实现这一目标?
为每组早期绑定类创建一个单独的库项目,并在每个库中放置一个crmsvcutil文件(根据需要添加程序集引用).现在,在控制台应用程序上,添加对库的引用.
假设我创建了两个编译为Proxy1.dll和Proxy2.dll的库项目.每个库的根名称空间是Proxy1和Proxy2.在ConsoleApp.exe中,我添加了两个引用和以下内容:
var url1 = new Uri(".../XRMServices/2011/Organization.svc");
var proxy1 = new OrganizationServiceProxy(url1, null, null, null);
proxy1.EnableProxyTypes(Assembly.Load("Proxy1")); // Proxy1.dll
var url2 = new Uri(".../XRMServices/2011/Organization.svc");
var proxy2 = new OrganizationServiceProxy(url2, null, null, null);
proxy2.EnableProxyTypes(Assembly.Load("Proxy2")); // Proxy2.dll
using (var context1 = new Proxy1.Proxy1ServiceContext(proxy1))
using (var context2 = new Proxy2.Proxy2ServiceContext(proxy2))
{
var accounts1 = context1.AccountSet;
var accounts2 = context2.AccountSet;
foreach (var account in accounts1) Console.WriteLine("1: {0}: {1}", account.GetType(), account.Id);
foreach (var account in accounts2) Console.WriteLine("2: {0}: {1}", account.GetType(), account.Id);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1206 次 |
| 最近记录: |