Каков наилучший способ узнать, успешно ли подключен DeviceServiceProxy к CRM?
Я использую GetEnumerator() в AccountSet, поскольку это не удается, если не подключено.
Подключен ли OrganizationServiceProxy?
/* Tries to connect to CRM and return false if failure - credentials arguments */
public bool Connect(string username, string password, string uri)
{
try
{
var cred = new ClientCredentials();
cred.UserName.UserName = username;
cred.UserName.Password = password;
service = new OrganizationServiceProxy(new Uri(uri), null, cred, null);
service.EnableProxyTypes(); // Allow LINQ early bound queries
linq = new Context(service);
/* This is where I need help */
var e = linq.AccountSet.GetEnumerator(); // this fails if not connected
}
catch
{
return false;
}
return true;
}
Сервис и Linq частные поля.
Контекст - это serviceContextName в файле crmsvcutil.exe.
У меня есть привычка использовать имя «linq» для объекта Context.
Должен быть лучший способ.
Что вы хотите это сделать, чтобы? Он не будет пытаться подключиться, пока вы не попытаетесь что-то сделать. Как это должно знать, связано ли это или нет? – Daryl
Я хочу, чтобы метод инициализировал поля службы и linq и возвращал false справа, если соединение не удалось. Другой метод использует service.Execute (ExecuteMultipleRequest). Должен ли я перестать проверять, удалось ли соединение, пока я не воспользуюсь service.Execute()? – Bvrce
Вместо вызова GetEnumerator() вы можете просто вызвать вызов GetFirstOrDefault, чтобы проверить, что он работает? – Daryl