从DLL(程序集)加载组件而不加载程序集

时间:2015-12-29 08:10:16

标签: c# wpf

如何从Assembly加载组件而不在内存中加载完整的Assembly

如果我UserControl中有Assembly个UC1,我想在 XAML or c# code 中加载它而不加载整个汇编文件? 我可以这样做吗?

2 个答案:

答案 0 :(得分:1)

仅限代码检查,您需要阅读此article on MSDN。使用该方法,未加载检查的库。不幸的是,要执行方法,你需要从汇编中加载汇编和方法,因为其他帖子正在消化。

答案 1 :(得分:0)

来自其他堆栈溢出帖子:Loading DLLs at runtime in C#

  

成员必须在编译时可解析才能直接调用   C#。否则,您必须使用反射或动态对象。

namespace ConsoleApplication1 {
    using System;
    using System.Reflection;

    class Program
    {
        static void Main(string[] args)
        {
            var DLL = Assembly.LoadFile(@"C:\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\DLL.dll");

            foreach(Type type in DLL.GetExportedTypes())
            {
                var c = Activator.CreateInstance(type);
                type.InvokeMember("Output", BindingFlags.InvokeMethod, null, c, new object[] {@"Hello"});
            }

            Console.ReadLine();
        }
    }
     

}