How does the code looks that would create an object of class:
string myClass = "MyClass";
Of the above type, and then call
string myMethod = "MyMethod";
On that object?
How does the code looks that would create an object of class:
string myClass = "MyClass";
Of the above type, and then call
string myMethod = "MyMethod";
On that object?
Type.GetType(string)
to get the type object.Activator.CreateInstance(Type)
to create an instance.Type.GetMethod(string)
to retrieve a method.MethodBase.Invoke(object, object[])
to invoke the method on the objectExample, but with no error checking:
Each step needs careful checking - you may not find the type, it may not have a parameterless constructor, you may not find the method, you may invoke it with the wrong argument types.
One thing to note: Type.GetType(string) needs the assembly-qualified name of the type unless it's in the currently executing assembly or mscorlib.
I've created a library which simplifies dynamic object creation and invocation using .NET you can download the library and the code in google code: Late Binding Helper In the project you will find a Wiki page with the usage, or you can also check this article in CodeProject
Using my library, your example will look like this:
Or even shorter:
It uses a fluent interface, and truly simplifies this kind of operations. I hope you could find it useful.
Assuming that your class is in your executing assembly, your constructor and your method is parameterless.
The following assumes an object with a public constructor and a public method that returns some value but takes no parameters.