Это довольно просто. Предположим, что ваше имя класса Car
, а пространство имен - Vehicles
, затем передайте параметр как Vehicles.Car
, который возвращает объект типа Car
. Подобным образом вы можете создать любой экземпляр любого класса динамически.
public object GetInstance(string strNamesapace)
{
Type t = Type.GetType(strNamesapace);
return Activator.CreateInstance(t);
}
Если ваше Полноценное имя (т. Е. Vehicles.Car
в этом случае) находится в другой сборке, Type.GetType
будет null. В таких случаях вы прокручиваете все сборки и находите Type
. Для этого вы можете использовать приведенный ниже код
public object GetInstance(string strFullyQualifiedName)
{
Type type = Type.GetType(strFullyQualifiedName);
if (type != null)
return Activator.CreateInstance(type);
foreach (var asm in AppDomain.CurrentDomain.GetAssemblies())
{
type = asm.GetType(strFullyQualifiedName);
if (type != null)
return Activator.CreateInstance(type);
}
return null;
}
. Вы можете получить экземпляр, вызвав вышеуказанный метод.
object objClassInstance = GetInstance("Vehicles.Car");