I am trying to create a class that gets from the user a name of a class and unknown number of parameters, and creates a suitable object. when i run my code, i get a MissingMethod Exception.
this is my code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Project2
{
class Class1
{
public static void Main()
{
Console.WriteLine("enter a class name");
string className = Console.ReadLine();
Console.WriteLine("enter parameters seperate with a space");
string parametersLine = Console.ReadLine();
string []parameters = parametersLine.Split(' ');
//Console.WriteLine(parameters.Length);
CreateObject createObject = new CreateObject(className, parameters);
Console.ReadKey();
}
}
class CreateObject
{
private readonly string className;
public CreateObject(string className, string[] parameters)
{
this.className = className;
try
{
if (parameters.Length == 1 && parameters[0] == "") // no parameters
{
Activator.CreateInstance(className.GetType());
}
else {
Activator.CreateInstance(className.GetType(), parameters);
}
}
catch (Exception e)
{
Console.WriteLine(e.GetType());
}
}
}
class Person
{
public int id{ get; set; }
public string name{ get; set; }
public Person()
{
Console.WriteLine("Created empety Person object");
}
public Person(int id, string name)
{
this.id = id;
this.name = name;
Console.WriteLine("Created Person object. " +"id:" + id + " name:" + name);
}
}
class Point
{
public int x { get; set; }
public int y { get; set; }
public int z { get; set; }
public Point()
{
Console.WriteLine("Created empety Point object");
}
public Point(int x, int y, int z)
{
this.x = x;
this.y = y;
this.z = z;
Console.WriteLine("Created Point object. " + "x:" + x + " y:" + y + " z:" + z);
}
}
}
