要反射的程序集代码:
namespace ReflectionClassLibrary
{
/// <summary>
/// 第一层
/// </summary>
public class A
{
/// <summary>
/// 第二层
/// </summary>
public class B
{
/// <summary>
/// 第三层
/// </summary>
public class C
{
public string member;
public C(string arg)
{
member = arg;
}
}
}
}
}
主程序代码:
class Program
{
static void Main(string[] args)
{
Assembly assembly = Assembly.Load("ReflectionClassLibrary");
//注意此处:子级与上级类连接用加号(+),命名空间与类之间用点(.)
Type type = assembly.GetType("ReflectionClassLibrary.A+B+C");
ReflectionClassLibrary.A.B.C obj_C = Activator.CreateInstance(type, "TestC") as ReflectionClassLibrary.A.B.C;
Console.WriteLine(obj_C.member);
Console.ReadKey();
}
}
运行结果:
![]()
唯一要注意的是:
命名空间与类之间用点(.)连接;子级与上级类用加号(+)连接。
本文介绍如何使用C#反射机制加载程序集并创建特定类型的实例,详细解释了命名空间、类之间的连接方式以及子级与上级类的连接方法。
2501

被折叠的 条评论
为什么被折叠?



