Я создал пользовательский раздел конфигурации и могу добавить столько строк XML в свой пользовательский раздел, просмотреть и распечатать их все.Это отлично работает.
<eTMSoftware>
<Program Id="1" Customer="SomeCust" Type="DC" InstalledLocation="C:\Program Files (x86)\eMenuDesktopComponent 1.1.1.1_Customer" LogBaseDestination="C:\_eTM Logging"/>
<Program Id="2" Customer="ThisCustNew" Type="DC" InstalledLocation="Some_Path" LogBaseDestination="DEST"/>
<Program Id="3" Customer="AnotherNewCust" Type="DC" InstalledLocation="Some_Another_Path" LogBaseDestination="DEST"/>
</eTMSoftware>
Я следовал руководству по настройке пользовательской конфигурации и создал ConfigurationElementCollection для своего ConfigurationSection.
Моя КОНЕЦНАЯ ЦЕЛЬ : Выполните цикл по ConfigurationElementCollection (которая содержит 3 узла XML выше) и добавьте все атрибуты "Customer" в строковый массив.
Я не могу понять, как это сделать, потому что, хотя ConfigurationElementCollection наследуется от ICollection и IEnumberable, у меня нет доступа к методам Select () или Where ().Кто-нибудь может предложить решение?
Я могу предоставить код, если это необходимо.Я думал, что сначала было бы слишком много.
Редактировать: вот два разных способа, которыми я пробовал кастовать
public void VerifyShareDestinationsPerCustomer(eTMProgamsElementCollection configuredItems)
{
string[] customersFromConfig = configuredItems.Cast<eTMProgramElement>().Select(p => p.Customer);
}
Текст ошибки:
Не удалось неявно преобразовать тип 'System.Collections.Generic.IEnumerable' в 'string []'.Существует явное преобразование (Вы пропустили приведение?).
public void VerifyShareDestinationsPerCustomer(eTMProgamsElementCollection configuredItems)
{
string[] customersFromConfig = configuredItems.Cast<object>().Select(p => p.Customer);
}
Текст ошибки:
Объект не содержит определения «Клиент» и недоступенМожно найти метод расширения «Клиент», принимающий первый аргумент типа «Объект».
ОТВЕТ НАЙДЕН: Мне удалось добавить ToArray ()метод до конца определения массива, и он работал с кодом из Haukinger!Спасибо!
string[] customersFromConfig = configuredItems.Cast<eTMProgramElement>().Select(p => p.Customer).ToArray<string>();