>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 >} >>