Создание общих переменных из типа - Как? Или используйте Activator.CreateInstance () со свойствами {} вместо параметров ()?

В настоящее время я использую Generics для создания некоторых динамических методов, таких как создание объекта и заполнение свойств значениями.

Есть ли способ «динамически»? создать общий, не зная типа? Например:

List<String> = new List<String>()

это предопределенный способ, но

List<(object.GetType())> = new List<(object.GetType()>()

не работает ... Но так ли это?

Это не работает (Есть ли похожий подход, который работает?)

    public T CreateObject<T>(Hashtable values)
    {
        // If it has parameterless constructor (I check this beforehand)
        T obj = (T)Activator.CreateInstance(typeof(T));

        foreach (System.Reflection.PropertyInfo p in typeof(T).GetProperties())
        {
            // Specifically this doesn't work
            var propertyValue = (p.PropertyType)values[p.Name];
            // Should work if T2 is generic
            // var propertyValue = (T2)values[p.Name];

            obj.GetType().GetProperty(p.Name).SetValue(obj, propertyValue, null);
        }
    }

Итак, вкратце: как взять & quot; Тип & quot; и создать объект из этого без использования Generics? До сих пор я использовал только Generics в методах, но возможно ли использовать то же самое для переменных? Я должен определить Generic (T) перед методом, так что я могу сделать то же самое для переменных перед & quot; созданием & quot; их?

... или как использовать & quot; Активатор & quot; создать объект со свойствами вместо параметров. Как вы делаете здесь:

// со значениями параметров

Test t = new Test("Argument1", Argument2);

// со свойствами

Test t = new Test { Argument1 = "Hello", Argument2 = 123 };

Ответы на вопрос(3)

Ваш ответ на вопрос