1. C# / Говнокод #16169

    +133

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    [Serializable]
    public class CSScriptCompiler
    {
    	//file name of script  including full path
    	string sFileNameWithPath;
    
    	System.Reflection.Assembly m_assembly = null;
    
    	public CSScriptCompiler(string ScriptFileName)
    	{
    		this.sFileNameWithPath = Path.GetFullPath(ScriptFileName);
    
    		try
    		{
    			//load Assembly of *.cs file
    			m_assembly = CSScript.Load(sFileNameWithPath, null, true);
    		}
    		catch (Exception ex)
    		{
    			m_assembly = null;
    			MessageBox.Show(ex.Message);
    			
    			throw (ex);
    		}
    	}
    
    	public bool Initialize(params object[] InitArgs)
    	{
    		if (m_assembly == null)
    		{
    			return false;
    		}
    
    		try
    		{
    			var InitFuntion = m_assembly.GetStaticMethod("*.Initialize", InitArgs);
    
    			//call initialize function
    			InitFuntion(InitArgs);
    		}
    		catch (Exception ex)
    		{
    			MessageBox.Show(ex.Message);
    			return false;
    		}
    
    		return true;
    	}
    
    
    	public object CallFunction(String sFunctionName, params object[] args)
    	{
    		object result = null;
    
    		sFunctionName = "*." + sFunctionName;
    		try
    		{
    			var theFunction = m_assembly.GetStaticMethod(sFunctionName, args);
    		   
    			//call the method with your own arguements
    			result = theFunction(args);
    		}
    		catch (Exception ex)
    		{
    			MessageBox.Show(ex.Message);
    		}
    
    		return result;
    	}
    }

    Ну что тут скажешь...
    Велосипедист...

    Запостил: blackhearted, 16 Июня 2014

    Комментарии (0) RSS

    Добавить комментарий

    Ошибка компиляции комментария:
    1. Гости могут высказаться только в понедельник, среду, четверг или воскресение
    ava Где здесь C++, guest?!
    А не использовать ли нам bbcode?
    • [b]жирный[/b] — жирный
    • [i]курсив[/i] — курсив
    • [u]подчеркнутый[/u] — подчеркнутый
    • [s]перечеркнутый[/s] — перечеркнутый
    • [blink]мигающий[/blink] — мигающий
    • [color=red]цвет[/color] — цвет (подробнее)
    • [size=20]размер[/size] — размер (подробнее)
    • [code=<language>]some code[/code] (подробнее)
    Проверочный код