public static string InvokeAnalyseMood(string message, string methodName) { try { Type type = Type.GetType("MoodAnalyser.MoodAnalyse"); object moodAnalyseObject = MoodAnalyserFactory.CreateMoodAnalyseUsingParameterizedConstructor("MoodAnalyser.MoodAnalyse", "MoodAnalyse", message); MethodInfo analyseMoodInfo = type.GetMethod(methodName); object mood = analyseMoodInfo.Invoke(moodAnalyseObject, null); return mood.ToString(); } catch { throw new MoodAnalyzerCustomException(MoodAnalyzerCustomException.ExceptionType.NO_SUCH_METHOD, "Method is not found"); } }
//UC6 public static string InvokeMethod(string className, string methodName, string message) { Type type1 = typeof(MoodToAnalyse); try { ConstructorInfo constructor = type1.GetConstructor(new[] { typeof(string) }); object obj = MoodAnalyserFactory.CreateMoodAnalyseMethod(className, methodName, message); Assembly excutingAssambly = Assembly.GetExecutingAssembly(); Type type = excutingAssambly.GetType(className); MethodInfo getMoodMethod = type.GetMethod(methodName); string msg = (string)getMoodMethod.Invoke(obj, null); return(msg); } catch (Exception) { throw new MoodAnalyserException(MoodAnalyserException.ExceptionType.NO_SUCH_METHOD, "No Such Method"); } }
static void Main(string[] args) { Console.WriteLine("Welcome to Mood Analyser Program!"); MoodAnalyserFactory.Initialize("MoodAnalyser"); MoodAnalyserReflector.Invoke("AnalyseMood"); }