Динамическое создание и вызов класса с помощью Reflection в консольном приложении - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть некоторые проблемы с этим разделом на языке C #.

Поэтому я пытаюсь сделать что-то вроде раскрытия отражения этого класса и его методов.

class Car
{
    public string Name { get; set; }
    public int Shifts{ get; set; }


    public Car(string name, int shifts)
    {
        Name = name;
        Shifts = shifts;
    }

    public string GetCarInfo()
    {
        return "Car " + Name + " has number of shifts: " + Shifts;
    }

}

Итак, у меня есть этот класс Car и этот метод GetCarInfo (), теперь я пытаюсь: динамически создать экземпляр этого класса Car и динамически вызывать метод GetCarInfo (), я быхотел бы показать результат в консоли, но я не могу, когда я запускаю его, он показывает ошибки сборки.Приложение прерывается каждый раз.

Редактировать

Ошибки

1 Ответ

0 голосов
/ 13 февраля 2019

Вот пример

namespace ConsoltedeTEstes
  {
 class Program
 {
    static void Main(string[] args)
    {
        //Get the type of the car, be careful with the full name of class
        Type t = Type.GetType("ConsoltedeTEstes.Car");

        //Create a new object passing the parameters
        var dinamycCar = Activator.CreateInstance(t, "User", 2);

        //Get the method you want
        var method = ((object)dinamycCar).GetType().GetMethod("GetCarInfo");

        //Get the value of the method
        var returnOfMethod = method.Invoke(dinamycCar, new string[0]);

        Console.ReadKey();
    }
}

public class Car
{
    public string Name { get; set; }
    public int Shifts { get; set; }


    public Car(string name, int shifts)
    {
        Name = name;
        Shifts = shifts;
    }

    public string GetCarInfo()
    {
        return "Car " + Name + " has number of shifts: " + Shifts;
    }

}


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...