Если вы используете полноэкранную прозрачную активность, нет необходимости указывать блокировку ориентации для этой активности. Это займет настройки конфигурации родительской активности. Итак, если родительская активность имеет в манифесте:
android: screenOrientation = "portrait"
blockquote>, ваша полупрозрачная активность будет иметь одинаковую блокировку ориентации: портрет.
(T)Activator.CreateInstance(typeof(T), param1, param2);
Имейте в виду, что передаваемые аргументы в Activator.CreateInstance имеют значительную разницу в производительности по сравнению с беззаметным созданием.
Существуют альтернативы для динамического создания объектов с использованием предварительно скомпилированной лямбда. Конечно, всегда производительность субъективна, и она явно зависит от каждого случая, если она того стоит или нет.
Подробности о проблеме в этой статье.
График взят из статьи и представляет время, затраченное на мс на 1000 вызовов.
В качестве альтернативы Activator.CreateInstance FastObjectFactory в связанных записях url лучше, чем Activator (с .NET 4.0 и значительно лучше, чем .NET 3.5. Нет тестов / статистических данных с .NET 4.5). См. Сообщение StackOverflow для статистики, информации и кода:
Как передать ctor args в Activator.CreateInstance или использовать IL?
Есть еще один способ передать аргументы CreateInstance через именованные параметры.
Исходя из этого, вы можете передать массив по направлению к CreateInstance
. Это позволит вам иметь 0 или несколько аргументов.
public T CreateInstance<T>(params object[] paramArray)
{
return (T)Activator.CreateInstance(typeof(T), args:paramArray);
}