现在小弟做一个小程序 想获取DLL中的方法列表。但下面的程序在运行中出现了以下异常,思考许久不得其解。还望有好心大哥 帮帮忙这点一二。
出现异常:
未能加载文件或程序集“f:\\BHData.dll”或它的某一个依赖项。给定程序集名称或基本代码无效。 (异常来自 HRESULT:0x80131047)
代码:
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;namespace OutPutDLLInformation
{
class Program
{
static void Main(string[] args)
{
Assembly asm = Assembly.Load(@"f:\BHData.dll");
Type myType = asm.GetType();
// 获取公共方法
MethodInfo[] myArrayMethodInfo = myType.GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
Program p=new Program();
Console.WriteLine( p.getMethodInfo(myArrayMethodInfo));
}
/// <summary>
/// get Method informations from MethodInfo[] Array:
/// </summary>
/// <param name="myArrayMethodInfo"></param>
/// <returns></returns>
public string getMethodInfo(MethodInfo[] myArrayMethodInfo)
{
string methodStr = "";
///
///getinformation for all methods.
for (int i = 0; i < myArrayMethodInfo.Length; i++)
{
MethodInfo myMethodInfo = (MethodInfo)myArrayMethodInfo[i];
methodStr += "Method " + i + " :" + myMethodInfo.Name + Environment.NewLine;
}
return methodStr;
}
/// <summary>
/// get properties information from PropertyInfo[] Array:
/// </summary>
/// <param name="myPropertyInfo"></param>
/// <returns></returns>
public string getPropertyInfo(PropertyInfo[] myPropertyInfo)
{
string propStr = "";
// Display information for all properties.
for (int i = 0; i < myPropertyInfo.Length; i++)
{
PropertyInfo myPropInfo = (PropertyInfo)myPropertyInfo[i];
propStr += "property " + i + ":" + myPropInfo.Name + " type:" + myPropInfo.PropertyType + Environment.NewLine;
}
return propStr;
} }
}
出现异常:
未能加载文件或程序集“f:\\BHData.dll”或它的某一个依赖项。给定程序集名称或基本代码无效。 (异常来自 HRESULT:0x80131047)
代码:
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;namespace OutPutDLLInformation
{
class Program
{
static void Main(string[] args)
{
Assembly asm = Assembly.Load(@"f:\BHData.dll");
Type myType = asm.GetType();
// 获取公共方法
MethodInfo[] myArrayMethodInfo = myType.GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);
Program p=new Program();
Console.WriteLine( p.getMethodInfo(myArrayMethodInfo));
}
/// <summary>
/// get Method informations from MethodInfo[] Array:
/// </summary>
/// <param name="myArrayMethodInfo"></param>
/// <returns></returns>
public string getMethodInfo(MethodInfo[] myArrayMethodInfo)
{
string methodStr = "";
///
///getinformation for all methods.
for (int i = 0; i < myArrayMethodInfo.Length; i++)
{
MethodInfo myMethodInfo = (MethodInfo)myArrayMethodInfo[i];
methodStr += "Method " + i + " :" + myMethodInfo.Name + Environment.NewLine;
}
return methodStr;
}
/// <summary>
/// get properties information from PropertyInfo[] Array:
/// </summary>
/// <param name="myPropertyInfo"></param>
/// <returns></returns>
public string getPropertyInfo(PropertyInfo[] myPropertyInfo)
{
string propStr = "";
// Display information for all properties.
for (int i = 0; i < myPropertyInfo.Length; i++)
{
PropertyInfo myPropInfo = (PropertyInfo)myPropertyInfo[i];
propStr += "property " + i + ":" + myPropInfo.Name + " type:" + myPropInfo.PropertyType + Environment.NewLine;
}
return propStr;
} }
}
解决方案 »
- 自己没事写了个自己不断切换背景色的Label控件(重载的系统的Label),就是给控件添加个线程,不断切换背景,求优化方法,或者更好的方法,谢谢
- response.Write的问题请教
- 急!sql远程连接问题
- 自定义控件中ViewSate在母版页中丢失
- 如何根据反射机制来得到一个WinForm 上面所有控件的名称几属性?
- C#中水晶报表控件的问题?
- C#的高手这里有在线的吗?
- Controls.Find的用法
- 求个 正则怎么写呢
- 在webform的DataGrid1中,修改数据后的保存问题
- 为什么添加类后,在代码中查看,生成的新类没有包含一个默认的构造函数?
- Immediate窗口是在View|Other Windows中选择的吗?
.NET Framework 类库
Assembly.LoadFrom 方法 (String)
hbxtlhx大哥 怎么解决
下面的示例通过给定程序集文件名或路径加载程序集。
Assembly SampleAssembly;
SampleAssembly = Assembly.LoadFrom("c:\\Sample.Assembly.dll");
//获取一个已知的方法.
MethodInfo Method = SampleAssembly.GetTypes()[0].GetMethod("Method1");
// 获取这个方法的参数列表.
ParameterInfo[] Params = Method.GetParameters();
// 显示参数的信息
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());
}
Assembly asm = Assembly.Load(@"f:\BHData.dll");
Type myType = asm.GetType();
这边的BHData应该只是namespace吧,那样的话MyType根本得不到这个namespace里面具体的类
所以Type MyTpe =asm.GetType(//加上个类名称吧);
呵呵,错了不要骂我
出现异常:
未能加载文件或程序集“f:\\BHData.dll”或它的某一个依赖项。给定程序集名称或基本代码无效。 (异常来自 HRESULT:0x80131047)