我有一个小要求,完成它似乎有些麻烦。请知道我是 c# 的新手,这是给我的任务,我恳请大家帮助我尽快回复我已经超过了完成这项任务的最后期限。
我有一个 dll,并且其中定义了一个自定义属性,我希望能够从使用此自定义属性的类中检索所有方法。请注意,我必须从另一个应用程序引用的构建 dll 中获取方法名称。
这是为了更清晰的代码。
我的属性类:
namespace model
{
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false)]
public sealed class Class1: Attribute
{
public Class1()
{}
public Class1(string helptext)
{ }
public string HelpText { get; internal set; }
}
}
使用此属性并且将在构建为 DLL 后提取的类
private void Form1_Load(object sender, EventArgs e)
{
Assembly mydllAssembly = Assembly.LoadFile(@"D:\Windowsservice\BasicMEthods\BasicMEthods\bin\Debug\BasicMEthods.dll");
Type mydllFormType = mydllAssembly.GetType("BasicMEthods.Transforms",true);
MemberInfo info = mydllFormType;
Attribute[] attrs = (Attribute[])info.GetCustomAttributes(true);
foreach (Attribute att in attrs)
{
MethodInfo[] myArrayMethodInfo1 = mydllFormType.GetMethods(BindingFlags.Public);
for (int i = 0; i < myArrayMethodInfo1.Length; i++)
{
MethodInfo mymethodinfo = (MethodInfo)myArrayMethodInfo1[i];
textBox1.Text = mymethodinfo.ToString();
}
}
}
}
在这行代码抛出错误
Attribute[] attrs = (Attribute[])info.GetCustomAttributes(true);
它说
“无法加载文件或程序集 'model, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' 或其依赖项之一。系统找不到指定的文件。”
正在从指定位置获取 dll,我可以在快速手表中看到类转换我不知道为什么会抛出这个错误......而且我也不知道如何访问定义的属性在dll中......请帮助