Не используется BusinessEntity (если вы не используете отражение). DynamicEntity перечислим по типам, производным от Property. Вам придется сделать что-то вроде (я сделал это по памяти, так что может не скомпилировать) ...
for(int i = 0; i < colnames.length; i++)
{
string colName = colnames[i];
foreach(Property prop in tmp)
{
if (prop.name != colName)
continue;
if (prop is StringProperty)
{
var strProp = prop as StringProperty;
Response.Write(String.Format("{0}: {1}<BR />", colName, strProp.Value));
}
else if (prop is LookupProperty)
{
...
}
... for each type deriving from Property
}
}
Ответ на примечание 1 (длина):
Не могли бы вы привести пример того, что вы используете. Если вы смотрите только на базовые типы (Property), вы не сможете увидеть свойство value - вам нужно преобразовать его в соответствующий тип (StringProperty и т. Д.).
В моем примере tmp - это DynamicEntity (он определяет GetEnumerator, который возвращает массив Property). Другой способ получить доступ к свойствам DynamicEntity - использовать индексатор строк. Для tmp:
string firstname = (string)tmp["firstname"];
Обратите внимание, что если вы используете этот метод, вы получите значения (string, CrmNumber, Lookup), а не все свойство (StringProperty, CrmNumberProperty и т. Д.).
Это отвечает на ваш вопрос? Кроме того, я рекомендую использовать сборки SDK, а не веб-ссылки. Они намного проще в использовании. Тем не менее, загрузка SDK содержит список вспомогательных классов, если вы решите использовать веб-ссылки. Поиск "Помощник" в SDK.