>>>>>MyReflectionClass oReflection = new MyReflectionClass(assembly, classname); >>>>>string message = ""; >>>>>object o = oReflection.InstantiateClass(ref message); >>>>>if (message != "") >>>>> MessageBox.Show(message); >>>>>else >>>>>{ >>>>> // go on with your processing >>>>>} >>>>>>>>>>
>>>>>public class MyReflectionClass >>>>>{ >>>>> #region Declarations >>>>> private string m_AssemblyName; >>>>> private string m_ClassName; >>>>> #endregion >>>>> >>>>> #region Constructors >>>>> public MyReflectionClass() >>>>> { >>>>> } >>>>> public MyReflectionClass(string assemblyName, string className) >>>>> { >>>>> this.AssemblyName = assemblyName; >>>>> this.ClassName = className; >>>>> } >>>>> #endregion >>>>> >>>>> #region Methods >>>>> >>>>> public Assembly LoadAssembly(ref string Message) >>>>> { >>>>> Assembly oAssembly = null; >>>>> >>>>> try >>>>> { >>>>> oAssembly = Assembly.LoadFrom(this.m_AssemblyName + ".DLL"); >>>>> } >>>>> catch (System.IO.FileNotFoundException) >>>>> { >>>>> Message = this.m_AssemblyName + " could not be found at the specified URL!" + (char)13 + (char)13 + >>>>> "Check that you have correctly entered the component URL and that your network or Internet " + >>>>> "connection is functioning correctly."; >>>>> return oAssembly; >>>>> } >>>>> catch (System.BadImageFormatException) >>>>> { >>>>> Message = this.m_AssemblyName + " is invalid or damaged!" + (char)13 + (char)13 + >>>>> "Contact your system administrator."; >>>>> return oAssembly; >>>>> } >>>>> catch (System.Exception ex) >>>>> { >>>>> Message = ex.Message; >>>>> return oAssembly; >>>>> } >>>>> >>>>> return oAssembly; >>>>> } >>>>> >>>>> public object InstantiateClass(ref string Message) >>>>> { >>>>> Assembly oAssembly = null; >>>>> return this.InstantiateClass(ref oAssembly, ref Message); >>>>> } >>>>> public object InstantiateClass(ref Assembly oAssembly, ref string Message) >>>>> { >>>>> object oClass = null; >>>>> if (oAssembly == null || oAssembly.FullName.Contains(this.m_AssemblyName) == false) >>>>> oAssembly = this.LoadAssembly(ref Message); >>>>> >>>>> try >>>>> { >>>>> // Create an instance of the desired type from the assembly >>>>> if (oAssembly != null) >>>>> oClass = oAssembly.CreateInstance(this.m_ClassName); >>>>> } >>>>> catch (Exception ex) >>>>> { >>>>> Message = ex.Message; >>>>> return oClass; >>>>> } >>>>> >>>>> return oClass; >>>>> } >>>>> >>>>> #endregion >>>>> >>>>> #region Properties >>>>> public string AssemblyName >>>>> { >>>>> get { return this.m_AssemblyName; } >>>>> set >>>>> { >>>>> this.m_AssemblyName = value.Trim(); >>>>> if (this.m_AssemblyName.ToUpper().EndsWith(".DLL", true, null)) >>>>> this.m_AssemblyName = this.m_AssemblyName.Remove(this.m_AssemblyName.Length - 4); >>>>> } >>>>> } >>>>> public string ClassName >>>>> { >>>>> get { return this.m_ClassName; } >>>>> set >>>>> { >>>>> this.m_ClassName = value.Trim(); >>>>> if (this.m_ClassName.Contains(this.m_AssemblyName) == false) >>>>> this.m_ClassName = this.m_AssemblyName + "." + this.m_ClassName; >>>>> } >>>>> } >>>>> #endregion >>>>>} >>>>>>>>>>