using System; using System.Reflection; class App { static void Main() { try { object obj = FromAssembly("lib"); InvokeObject(obj); } catch(Exception e1) { Console.WriteLine(e1.Message); } } static object FromAssembly(string shortName) { Console.WriteLine("Use Assembly.Load"); AssemblyName name = new AssemblyName(); name.Name = shortName; name.Version = new Version("1.0.0.0"); name.CultureInfo = new CultureInfo(""); byte[] pkt = new byte[] {0xed,0xe6,0x78,0x9f,0xb0,0xb1,0x32,0x19}; name.SetPublicKeyToken(pkt); Assembly a = Assembly.Load(name); Type type = a.GetType("LibraryCode"); ConstructorInfo ctor = type.GetConstructor(Type.EmptyTypes); return ctor.Invoke(null); } static void InvokeObject(object obj) { Type type = obj.GetType(); MethodInfo mi = type.GetMethod("GetVersion"); string version = (string)mi.Invoke(obj, null); Console.WriteLine(version); } }