C# 从内存加载程序集

C# 从内存加载程序集,c#,.net,assembly-loading,C#,.net,Assembly Loading,我正在移植一个Java应用程序,其中类在运行时从内存(字节数组)加载并“执行”。我试图在C#中实现同样的效果,但在尝试从字节数组加载程序集(使用AppDomain.load方法)时遇到了问题(System.IO.FileNotFoundException异常) 有没有一种方法可以在不需要将这个字节数组保存到文件系统的情况下加载它们 简化这个想法,我们希望能够动态地执行和更改(更新)代码。我们使用单独的应用程序域来“加载/卸载”程序集。我刚刚尝试了以下代码: static void Main(st

我正在移植一个Java应用程序,其中类在运行时从内存(字节数组)加载并“执行”。我试图在C#中实现同样的效果,但在尝试从字节数组加载程序集(使用
AppDomain.load
方法)时遇到了问题(
System.IO.FileNotFoundException
异常)

有没有一种方法可以在不需要将这个字节数组保存到文件系统的情况下加载它们


简化这个想法,我们希望能够动态地执行和更改(更新)代码。我们使用单独的应用程序域来“加载/卸载”程序集。

我刚刚尝试了以下代码:

static void Main(string[] args)
        {

            var h = File.ReadAllBytes(@"C:\MyAssembly.exe");

            var g = Assembly.Load(h);            
        }

而且效果很好——我没有任何例外。您是否100%确定目标程序集存在?

它是否有任何依赖项?如果是这样,您应该首先加载它们。

我在问题中犯了一个错误,我使用的方法是AppDomain.load。我将更新帖子。字节数组必须来自某个地方。您可以打开网络连接,或使用共享内存技术获取字节。
static void Main(string[] args)
        {

            var h = File.ReadAllBytes(@"C:\MyAssembly.exe");

            var g = Assembly.Load(h);            
        }