/// <summary> /// Invokes the analyse mood. /// </summary> /// <param name="message">The message will be any its depend on user</param> /// <param name="methodeName">create mood analyzer using parameterized constructor</param> /// <returns>message</returns> /// <exception cref="MoodAnalyzerException">Method is not found</exception> public static string InvokeAnalyseMood(string message, string methodeName) { try { Type type = Type.GetType("MoodAnalyzerProblem.MoodAnalyzer"); object moodAnalyseObject = MoodAnalyzerFactory.CreateMoodAnalyzerUsingParameterizedConstructor("MoodAnalyzerProblem.MoodAnalyzer", "MoodAnalyzer", message); MethodInfo methodeInfo = type.GetMethod(methodeName); object mood = methodeInfo.Invoke(moodAnalyseObject, null); return(mood.ToString()); } catch { throw new MoodAnalyzerException(MoodAnalyzerException.ExceptionType.NO_SUCH_METHODE, "Method is not found"); } }
//public object CreateMoodAnalyzerParameterObject(string className, string constructor, string message) //{ // Type type = typeof(MoodAnalyzer); // if (type.Name.Equals(className) || type.FullName.Equals(className)) //check class naem same or not // { // if (type.Name.Equals(constructor)) // { // //MoodAnalyzerProblem.MoodAnalyzer // //string pattern = @"." + constructor + "$"; // // Match result = Regex.Match(className, pattern); //regex predefine class .pattern matching store result suppose pattern matching then create object than an constructor // ConstructorInfo constructorInfo = type.GetConstructor(new[] { typeof(string) }); //get constructor fetching one construct bsae on the he feth string parameter constructor fetching // var obj = constructorInfo.Invoke(new object[] { message }); //create object that Parameter Constructor by passing message // return obj; // } // else // { // throw new MoodAnalyzerException(MoodAnalyzerException.ExceptionType.CONSTRUCTOR_NOT_FOUND, "constructor not found");//Constructor name not maching that time we run // } // } // else // { // throw new MoodAnalyzerException(MoodAnalyzerException.ExceptionType.CLASS_NOT_FOUND, "class not found");//Constructor name not maching that time we run // } //} /* UC6:- Use Reflection to invoke Method –analyseMood * - Use Reflector to Invoke Method */ public string InvokeAnalyzerMethod(string message, string methodName) { try { Type type = typeof(MoodAnalyzer); MethodInfo analyzerMoodInfo = type.GetMethod(methodName); MoodAnalyzerFactory Factory = new MoodAnalyzerFactory(); object moodAnalyzerObject = Factory.CreateMoodAnalyzerParameterObject("MoodAnalyzerProblem.MoodAnalyzer", "MoodAnalyzer", message); object mood = analyzerMoodInfo.Invoke(moodAnalyzerObject, null); return(mood.ToString()); } catch (NullReferenceException) { throw new MoodAnalyzerException(MoodAnalyzerException.ExceptionType.NO_SUCH_METHOD, "Method is not found"); } }