111,120
社区成员
发帖
与我相关
我的任务
分享
string path = System.IO.Directory.GetCurrentDirectory(); //获得当前项目所在的据对路径
Assembly ass = Assembly.LoadFile(path + "\\lassLibrary1Demo.dll"); //获取DLL的集合
Type tp = ass.GetType("lassLibrary1Demo.Sample1"); //获得DLL中的指定类型
object tmpobj = ass.CreateInstance(//这里的参数怎么写?); //获得DLL中指定类的实例
public class Sample1
{
private string _str1;
public Sample1(string s)
{
_str1 = s;
}
/// <summary>
/// 显示
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public string Display()
{
return "默认方法";
}
/// <summary>
/// 显示
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public string Display(string s)
{
return s + "————添加后的元素";
}
}
string path = System.IO.Directory.GetCurrentDirectory(); //获得当前项目所在的据对路径
Assembly ass = Assembly.LoadFile(path + "\\lassLibrary1Demo.dll"); //获取DLL的集合
Type tp = ass.GetType("lassLibrary1Demo.Sample1"); //获得DLL中的指定类型
object tmpobj = ass.CreateInstance("lassLibrary1Demo.Sample1", false, BindingFlags.CreateInstance, null, new object[] { "12345" }, null, null); //获得DLL中指定类的实例
string classAttribute = (string)tp.InvokeMember("Str1", BindingFlags.DeclaredOnly | BindingFlags.Public
| BindingFlags.NonPublic | BindingFlags.Instance
| BindingFlags.GetProperty, null, tmpobj, null);
Console.WriteLine(classAttribute);
//这里在调用重载方法时出错
MethodInfo mi = tp.GetMethod("Display"); //取的方法描述
string result = (string)mi.Invoke(tmpobj, new object[] { "abc" }); //调用的对象,以及参数
Console.WriteLine(result); //把演示结果打印出来
Console.Read();
public class Sample1
{
private string _str1;
public Sample1(string s)
{
_str1 = s;
}
/// <summary>
/// 显示
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public string Display()
{
return "默认方法";
}
/// <summary>
/// 显示
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public string Display(string s)
{
return s + "————添加后的元素";
}
}