从DLL中获取类型
本文关键字:取类型 获取 DLL | 更新日期: 2023-09-27 18:12:46
我得到了以下代码来创建DLL:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
namespace Plugin
{
public class QtObject : DependencyObject
{
[...]
}
public class Timer : DependencyObject
{
[...]
}
}
我拿了DLL,想用下面的代码来检查它:
var library = Assembly.LoadFrom(libraryPath);
IEnumerable<Type> types = library.GetTypes();
在第二行,我得到了以下错误:"无法加载一个或多个请求的类型。获取LoaderExceptions属性以获取更多信息。"
据我所知,我应该在我的集合中得到2个"对象",对应于我的类,不是吗?
提前感谢您的帮助。
可能你的dll的一些引用没有被读取dll的应用程序引用。
怎么做.....
Assembly SampleAssembly;
SampleAssembly = Assembly.LoadFrom("c:''Sample.Assembly.dll");
MethodInfo Method = SampleAssembly.GetTypes()[0].GetMethod("Method1");
// Obtain a reference to the parameters collection of the MethodInfo instance.
ParameterInfo[] Params = Method.GetParameters();
// Display information about method parameters.
// Param = sParam1
// Type = System.String
// Position = 0
// Optional=False
foreach (ParameterInfo Param in Params)
{
Console.WriteLine("Param=" + Param.Name.ToString());
Console.WriteLine(" Type=" + Param.ParameterType.ToString());
Console.WriteLine(" Position=" + Param.Position.ToString());
Console.WriteLine(" Optional=" + Param.IsOptional.ToString());
}