Как передать параметры Activator.CreateInstance (строка, строка) [duplicate]

Если вы используете полноэкранную прозрачную активность, нет необходимости указывать блокировку ориентации для этой активности. Это займет настройки конфигурации родительской активности. Итак, если родительская активность имеет в манифесте:

android: screenOrientation = "portrait"

, ваша полупрозрачная активность будет иметь одинаковую блокировку ориентации: портрет.

179
задан p.campbell 28 February 2013 в 01:31
поделиться

4 ответа

Да.

(T)Activator.CreateInstance(typeof(T), param1, param2);
340
ответ дан SLaks 26 August 2018 в 02:44
поделиться

Имейте в виду, что передаваемые аргументы в Activator.CreateInstance имеют значительную разницу в производительности по сравнению с беззаметным созданием.

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

Подробности о проблеме в этой статье.

График взят из статьи и представляет время, затраченное на мс на 1000 вызовов.

0
ответ дан Anestis Kivranoglou 26 August 2018 в 02:44
поделиться

В качестве альтернативы Activator.CreateInstance FastObjectFactory в связанных записях url лучше, чем Activator (с .NET 4.0 и значительно лучше, чем .NET 3.5. Нет тестов / статистических данных с .NET 4.5). См. Сообщение StackOverflow для статистики, информации и кода:

Как передать ctor args в Activator.CreateInstance или использовать IL?

6
ответ дан Community 26 August 2018 в 02:44
поделиться

Есть еще один способ передать аргументы CreateInstance через именованные параметры.

Исходя из этого, вы можете передать массив по направлению к CreateInstance. Это позволит вам иметь 0 или несколько аргументов.

public T CreateInstance<T>(params object[] paramArray)
{
  return (T)Activator.CreateInstance(typeof(T), args:paramArray);
}
11
ответ дан thiago mendes 26 August 2018 в 02:44
поделиться
Другие вопросы по тегам:

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