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