Если у вас есть Type в сборке под названием «RipperTest.dll»
и его пространство имен - «RipperTest», в котором вы бы указали полное имя сборки в качестве строки типа.
Перед использованием этого типа вы должны быть уверены, что его сборка загружена, если ее нет в вызывающей сборке.
для класса Ripper1 в пространстве имен RipperTest в RipperTest.dll
namespace RipperTest
{
[Serializable]
public class Ripper1 : RipperBase
{
}
}
Type myType = Type.GetType("RipperTest.Ripper1");
, а затем позже использовать этот тип
var newObject = Activator.CreateInstance(myType);
Если ваш исходный экземпляр реализует определенный интерфейс, вы можете привести его к этому интерфейсу вместо возврата объекта.
вроде так:
var newObject = (IRipper)Activator.CreateInstance(myType);
Если вы пытаетесь вернуть список классов из вашей текущей сборки, вы можете сделать что-то вроде этого:
Assembly execAsm = Assembly.GetExecutingAssembly();
Type myType = (from type in execAsm.GetTypes()
where type.Name.Equals("YourTypeNameHere")
select type).FirstOrDefault();