我想加载一个DLL文件(Test.dll)作为程序集.我可以使用直接的Visual Studio引用(即加载dll作为对我的C#应用程序的引用)以及使用Assembly.LoadFile(filename)方法加载dll.现在,我想将我的dll文件作为嵌入式资源添加到我的Visual Studio应用程序中,并将dll文件作为程序集加载.我知道如何将此资源作为字节数组加载,字节数组和我可以使用的程序集之间是否存在某种关联?此外,我需要能够调用位于dll文件中的方法.请参阅下面的代码 – 它将进一步解释我在做什么.
Assembly SampleAssembly = Assembly.LoadFrom("WindowsFormsApplication2.ThisisaTESTDLL.dll"); Type myType = SampleAssembly.GetTypes()[0]; MethodInfo Method = myType.GetMethod("myVoid"); object myInstance = Activator.CreateInstance(myType,null); Method.Invoke(myInstance,new object[] { "param1","param1"});
如果我在这里遗漏任何东西,请尊敬地告诉我,我将编辑原始帖子.
解决方法
Assembly.GetExecutingAssembly().GetManifestResourceStream(…)
这应该会得到一个Stream对象.你可以从中读取一个字节数组.
您可以使用Assembly.Load加载它