wtorek, 15 czerwca 2010

.NET C# - dynamiczne wykonywanie metod

Wykrzesałem kod do dynamicznego wywoływania metod w C#

Biblioteki w załączniku:

DynamicCodeExecutor.dll - ta dll'ka wykonuje cała prace
dynamiccode.dll - przykładowa dll'ka z której chcemy wywołać dynamicznie metode

Odpalanie silnika czyli jak to działa:
List _lib = new List(); // to jest lista bibliotek jakie musimy podladowac do wykonania kodu
_lib.Add("dynamiccode.dll"); // w tym przypadku jest tylko jedna
string code = "return dynamiccode.tester.Time();"; //kod ktory chcemy wykonac, nalezy pamietac ze musimy zwrocic wartosc
DynamicCodeExecutor.CodeExecutor ce = new DynamicCodeExecutor.CodeExecutor(_lib, code); // budujemy obiekt
object response = ce.Run(); //odpalamy kod

wynik:
if (!ce.Status){ Console.WriteLine(ce.Error);} // w przypadku bledu wykonania kodu

if (ce.Status && response != null ) // jesli kod zostal wykonany poprawnie
{
//nalezy pamietac ze musimy wiedziec jakiego typu jest wartosc zwracana przez dana metode, w tym przypadku jest to datetime
DateTime date;
if (DateTime.TryParse((string)response, out date))
Console.WriteLine(date.ToShortTimeString());
}


Kod nie korzysta z żadnych zewnętrznych bibliotek.

Tutaj można pobrać plik z rozwiązaniem:
http://www.2shared.com/file/JASSrODe/testy.html

Brak komentarzy:

Prześlij komentarz