Assembly.Load(h)参数详解
时间: 2024-09-10 09:19:31 浏览: 43
C#调用外部dll使用方法详解.docx
`Assembly.Load()` 方法在 C# 中用于加载程序集,其主要参数 `h` 是可以有多种形式的:
1. **文件路径**[^1]:
```csharp
Assembly ass = Assembly.ReflectionOnlyLoadFrom(assemblyFile);
```
如果你想从磁盘上的某个文件直接加载程序集,可以传入该文件的完整路径作为参数。`ReflectionOnlyLoadFrom` 特殊于只读加载,这意味着它不会执行代码,仅用于反射访问。
2. **AssemblyName**[^2]:
```csharp
string assemblyName = "AssemblyTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=fffb45e56dd478e3";
Assembly ass = Assembly.ReflectionOnlyLoad(assemblyName);
```
或者你可以提供一个完整的程序集名称(包括版本、文化信息和公钥token),C# 会尝试找到匹配的程序集。
3. **二进制流**:
```csharp
byte[] buffer = System.IO.File.ReadAllBytes(ass.Location);
Assembly assembly = Assembly.Load(buffer);
```
这种情况下,你需要先读取程序集的文件到内存中形成字节数组,然后传递给 `Assembly.Load()` 来加载。
需要注意的是,`Assembly.Load()` 可能会抛出异常,比如找不到指定的程序集,或者程序集已经加载过。因此,在实际操作时要确保路径、名称或二进制数据的准确性。
阅读全文