How to load Assembly at runtime and create class instance?

后端 未结 3 1169
我寻月下人不归
我寻月下人不归 2020-11-27 17:06

I have a assembly. In this assembly I have a class and interface. I need to load this assembly at runtime and want to create an object of the class and also want to use the

3条回答
  •  隐瞒了意图╮
    2020-11-27 17:30

    Check out http://www.youtube.com/watch?v=x-KK7bmo1AM To modify his code to load multiple assemblies use

    static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
            {
                string assemblyName = args.Name.Split(',').First();
                using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("YourNamespace." + assemblyName + ".dll"))
                {
                    byte[] assemblyData = new byte[stream.Length];
                    stream.Read(assemblyData, 0, assemblyData.Length);
                    return Assembly.Load(assemblyData);
                }
            }
    In your main method put
    AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
    Be sure to add your assemblies to your project and change the build action property to "Embedded Resource".

提交回复
热议问题