Используя IE dev панель инструментов на всплывающем окне оконное веб-приложение

Никто не предоставил « классическое решение Reflection », так что вот полный пример кода:

using System;
using System.Collections;
using System.Collections.Generic;

namespace DictionaryRuntime
{
    public class DynamicDictionaryFactory
    {
        /// <summary>
        /// Factory to create dynamically a generic Dictionary.
        /// </summary>
        public IDictionary CreateDynamicGenericInstance(Type keyType, Type valueType)
        {
            //Creating the Dictionary.
            Type typeDict = typeof(Dictionary<,>);

            //Creating KeyValue Type for Dictionary.
            Type[] typeArgs = { keyType, valueType };

            //Passing the Type and create Dictionary Type.
            Type genericType = typeDict.MakeGenericType(typeArgs);

            //Creating Instance for Dictionary<K,T>.
            IDictionary d = Activator.CreateInstance(genericType) as IDictionary;

            return d;

        }
    }
}

Выше DynamicDictionaryFactory класс имеет метод

CreateDynamicGenericInstance(Type keyType, Type valueType)

, и он создает и возвращает экземпляр IDictionary, типы ключей и значений которых точно указаны в запросе keyType и valueType.

Вот полный пример того, как вызвать этот метод для создания экземпляра и использования Dictionary<String, int>:

using System;
using System.Collections.Generic;

namespace DynamicDictionary
{
    class Test
    {
        static void Main(string[] args)
        {
            var factory = new DictionaryRuntime.DynamicDictionaryFactory();
            var dict = factory.CreateDynamicGenericInstance(typeof(String), typeof(int));

            var typedDict = dict as Dictionary<String, int>;

            if (typedDict != null)
            {
                Console.WriteLine("Dictionary<String, int>");

                typedDict.Add("One", 1);
                typedDict.Add("Two", 2);
                typedDict.Add("Three", 3);

                foreach(var kvp in typedDict)
                {
                    Console.WriteLine("\"" + kvp.Key + "\": " + kvp.Value);
                }
            }
            else
                Console.WriteLine("null");
        }
    }
}

. Когда указанное консольное приложение выполняется, мы получаем правильный ожидаемый результат:

Dictionary<String, int>
"One": 1
"Two": 2
"Three": 3
16
задан laconicdev 7 January 2009 в 14:43
поделиться

3 ответа

У меня была та же проблема, я был вынужден изменить свой код, так, чтобы мне считали серверную переменную из файла конфигурации, если мы показываем панель инструментов или нет. Таким образом, когда мы находимся в dev или обеспечении качества, мы показываем панель инструментов, но в производстве мы скрываем его.

, Если кто-то знает лучшего пути, надо надеяться, что они вмешаются.

Редактирование

Ohh и это не работают вообще для модального диалогового окна window.showModalDialog (или если т.е. поддерживает его window.open (страница, "modal=yes")), и ctrl-n не работает также.

4
ответ дан 30 November 2019 в 15:41
поделиться

Нажмите CTRL-n, в то время как окно активно. Это откроет тот же URL в не всплывающем окне, вместе с панелью инструментов.

8
ответ дан 30 November 2019 в 15:41
поделиться

Если можно использовать бету/RC IE8, попытайтесь поразить F12 во всплывающее окно.

3
ответ дан 30 November 2019 в 15:41
поделиться
Другие вопросы по тегам:

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