Предварительно в проект кидаем Web Reference на MetaDataService
(
http://msdn.microsoft.com/en-us/library/cc151043.aspx)
Собственно дальше выполнение:
//создание экземпляра сервиса метаданных:
Код:
MetaCRM.MetadataService _metaservice = null;
MetaCRM.CrmAuthenticationToken token = new MetaCRM.CrmAuthenticationToken();
token.AuthenticationType = 0;
token.OrganizationName = <Your Organization Name>;
_metaservice = new MetaCRM.MetadataService();
_metaservice.Url = "http://<You CRM Server>/MSCRMServices/2007/MetadataService.asmx";
_metaservice.CrmAuthenticationTokenValue = token;
_metaservice.Credentials = System.Net.CredentialCache.DefaultCredentials;
_metaservice.UnsafeAuthenticatedConnectionSharing = true;
//создание запроса на чтение Сущности
Код:
MetaCRM.RetrieveEntityRequest entityRequest = new MetaCRM.RetrieveEntityRequest();
entityRequest.RetrieveAsIfPublished = true;
//Сущность контрагента
Код:
entityRequest.LogicalName = CRM.EntityName.account.ToString();
//Включение получени сущности и её аттрибутов
Код:
entityRequest.EntityItems = MetaCRM.EntityItems.IncludeAttributes;
//Получение сущности
MetaCRM.RetrieveEntityResponse entityResponce =
Код:
(MetaCRM.RetrieveEntityResponse)_metaservice.Execute(entityRequest);
//для демонстрации работы дальше выполнен поиск всех лукапов и выведение
//кодов сущностей лукапов
Код:
string LookupEntities = string.Empty;
foreach (MetaCRM.AttributeMetadata attribut in entityResponce.EntityMetadata.Attributes)
if (attribut is MetaCRM.LookupAttributeMetadata)
LookupEntities += ((MetaCRM.LookupAttributeMetadata)attribut).Targets[0] + Environment.NewLine;
MessageBox.Show(LookupEntities);
Если чтото не заработает - не серчайте ) Первый раз юзаю Мета сервис. У меня всё заработало.