Тестирование, если Объектом является Словарь в C#

После Вызов неопределенной функции __ () ошибка - phpMyAdmin

В зависимости от вашей ОС вы пробовали:

(CentOS)

sudo yum install php-mbstring

[ 1116] (Debian)

sudo apt-get install php7.0-mbstring

А затем перезапустите процесс Apache.

Проверьте требования phpMyAdmin

  • Вам необходим PHP 7.1.0 или более поздней версии, с поддержкой сеансов, расширением Standard PHP Library (SPL), hash, ctype и поддержка JSON.
  • Расширение mbstring (см. Mbstring) настоятельно рекомендуется по соображениям производительности.
  • Для поддержки загрузки ZIP-файлов вам нужно расширение PHP zip.
  • Вам нужна поддержка GD2 в PHP для отображения встроенных миниатюр JPEG («image / jpeg: inline») с их исходным соотношением сторон.
  • При использовании аутентификации cookie (по умолчанию) настоятельно рекомендуется расширение openssl.
  • Для поддержки индикаторов выполнения загрузки см. 2.9 Просмотр индикатора выполнения загрузки.
  • Для поддержки импорта XML и электронных таблиц Open Document требуется расширение libxml.
  • Для поддержки reCAPTCHA на странице входа в систему вам потребуется расширение openssl.
  • Чтобы поддерживать отображение последней версии phpMyAdmin, вам нужно включить allow_url_open в вашем php.ini или иметь расширение curl.
blockquote>

15
задан Bob Wintemberg 23 September 2008 в 19:19
поделиться

6 ответов

Это должно быть что-то как следующее. Я записал это в поле ответа, таким образом, синтаксис не может быть точно правильным, но я сделал это Wiki доступный для редактирования, таким образом, кто-либо может договориться.

if (listBox.ItemsSource.IsGenericType && 
    typeof(IDictionary<,>).IsAssignableFrom(listBox.ItemsSource.GetGenericTypeDefinition()))
{
    var method = typeof(KeyValuePair<,>).GetProperty("Value").GetGetMethod();
    var item = method.Invoke(listBox.SelectedItem, null);
}
10
ответ дан 1 December 2019 в 02:38
поделиться

Я полагаю, что предупреждение в месте.

, Когда Вы тестируете, если объект 'является' чем-то это или что, Вы повторно реализуете (часть) систему типов. Первое '', часто быстро сопровождается вторым, и скоро Ваш код полон проверок типа, которые должны быть очень хорошо обработаны системой типов - по крайней мере, в объектно-ориентированном проектировании.

, Конечно, я не знаю ничего из контекста вопроса. Я действительно знаю файл строки 2000 года в нашей собственной кодовой базе, которая обрабатывает 50 других объектов к Преобразованиям строк... :(

0
ответ дан 1 December 2019 в 02:38
поделиться

Вы могли быть немного более универсальными и спросить вместо этого, если это реализует IDictionary. Затем набор KeyValue будет плоскость буфета Objects.

0
ответ дан 1 December 2019 в 02:38
поделиться

можно проверить, чтобы видеть, реализует ли это IDictionary. Необходимо будет просто перечислить по использованию класс DictionaryEntry .

1
ответ дан 1 December 2019 в 02:38
поделиться

Проверьте, чтобы видеть, реализует ли это IDictionary.

См. определение Системы. Наборы. IDictionary для наблюдения то, что это дает Вам.

if (listBox.ItemsSource is IDictionary)
{
    DictionaryEntry pair = (DictionaryEntry)listBox.SelectedItem;
    object value = pair.Value;
}

РЕДАКТИРОВАНИЕ: Альтернатива, когда я понял KeyValuePair, не castable к DictionaryEntry

if (listBox.DataSource is IDictionary)
{
     listBox.ValueMember = "Value";
     object value = listBox.SelectedValue;
     listBox.ValueMember = ""; //If you need it to generally be empty.
}

, Это решение использует отражение, но в этом случае Вы не должны делать трудной работы, ListBox делает это для Вас. Также, если у Вас обычно есть словари как источники данных, Вы можете избегать reseting ValueMember все время.

13
ответ дан 1 December 2019 в 02:38
поделиться
if(typeof(IDictionary).IsAssignableFrom(listBox.ItemsSource.GetType()))
{

}
0
ответ дан 1 December 2019 в 02:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: