Google размещает API, возвращающий только 5 результатов

Если вы хотите использовать конструктор по умолчанию, то решение с использованием System.Activator, представленное ранее, возможно, наиболее удобно. Однако, если в типе отсутствует конструктор по умолчанию или вам нужно использовать нестандартный, тогда опция должна использовать отражение или System.ComponentModel.TypeDescriptor. В случае отражения достаточно знать только имя типа (с его пространством имен).

Пример с использованием отражения:

ObjectType instance = 
    (ObjectType)System.Reflection.Assembly.GetExecutingAssembly().CreateInstance(
        typeName: objectType.FulName, // string including namespace of the type
        ignoreCase: false,
        bindingAttr: BindingFlags.Default,
        binder: null,  // use default binder
        args: new object[] { args, to, constructor },
        culture: null, // use CultureInfo from current thread
        activationAttributes: null
    );

Пример с помощью TypeDescriptor:

ObjectType instance = 
    (ObjectType)System.ComponentModel.TypeDescriptor.CreateInstance(
        provider: null, // use standard type description provider, which uses reflection
        objectType: objectType,
        argTypes: new Type[] { types, of, args },
        args: new object[] { args, to, constructor }
    );
22
задан Elliot Reed 12 December 2017 в 16:15
поделиться