Я пытаюсь получить эту функцию:C# Создание экземпляра класса от типа
Class<?> c = Class.forName(dir.substring(6).replaceAll("/", ".")
+ file.getName().replaceAll(".java", ""));
Packet packet = (Packet)c.newInstance();
Для любого из вас, кто familliar с ним, приведенным выше кодом Java, он получает класс из каталог, а затем создает экземпляр этого, что то, что я пытаюсь сделать в C#
Я получил об этом далеко, и теперь я застрял ...
foreach(Type t in assembly.GetTypes())
{
if (t.BaseType == typeof(Packet))
{
в основном я нужно найти способ построения класса из типа , затем создайте его экземпляр.
Я попытался с помощью Активатор, например, так:
foreach(Type t in assembly.GetTypes())
{
if (t.BaseType == typeof(Packet))
{
string namespaceName = t.Namespace;
string className = t.Name;
var myObj = Activator.CreateInstance(namespaceName, className);
, но я не могу понять, как ссылаться на него как класс вместо ObjectHandle
СПАСИБО! Я использовал 'Activator.CreateInstance (namespaceName, className);' который должен был быть назначен ObjectHandle, и я ничего не мог с этим поделать. – Hobbyist
@ Christian.tucker: Даже если бы вы могли использовать 'ObjectHandle',' Activator.CreateInstance' не принимает пространство имен и имя типа - оно принимает имя * assembly * и имя типа с именем пространства имен , –