Я использую C# для разработки мобильных приложений (Monotouch, monodroid). У меня есть класс по этому определению:Получение объекта класса из его строкового имени в C#
public class TempIOAddOn : BaseIOAddOn
{
public TempIOAddOn()
{
}
}
И я использую этот код, чтобы получить доступ к экземпляру класса по имени строки:
BaseIOAddOn tempIOAddOn;
Type t= Type.GetType("TempIOAddOn");
tempIOAddOn = (BaseIOAddOn)Activator.CreateInstance(t);
Но после того, как executation, t
является null
.
Я попытался ниже код также:
BaseIOAddOn tempIOAddOn;
tempIOAddOn = (BaseIOAddOn)System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("TempIOAddOn");
Но снова я сталкиваюсь с null
. tempIOAddOn
- null
.
Что случилось со мной?
Попробуйте использовать [Собрание Qualified Name] (http://msdn.microsoft.com/en-us/library/system.type .assemblyqualifiedname.aspx). Если он запускает Xamarin, ему необходимо указать полное имя. У меня были те же ограничения с Silverlight. –
Возможный дубликат [Получение типа System.Type из частичного имени типа] (http://stackoverflow.com/questions/179102/getting-a-system-type-from-types-partial-name) ** и ** [type-gettypenamespace-ab-classname-returns-null] (http://stackoverflow.com/questions/1825147/type-gettypenamespace-ab-classname-returns-null) – nawfal