CodeSnippet/CsharpTests/ReflectTests.cs
(开头部分) 7KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
namespace CodeSnippet.CsharpTests
{
using System;
using System.Reflection;
using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestCategory("Reflect")]
[TestClass()]
public class ReflectTests
{
/// <summary>
/// 获取所有构造函数
/// </summary>
[TestMethod]
public void GetConstructors()
{
Type t = new ReflectClass().GetType();
// 获取类的所有构造函数
ConstructorInfo[] constructorInfos = t.GetConstructors();
foreach (ConstructorInfo ci in constructorInfos)
{
// 获取每个构造函数的参数
ParameterInfo[] parameterInfos = ci.GetParameters();
foreach (ParameterInfo p in parameterInfos)
{
Console.WriteLine(p.ParameterType.ToString() + "\n" + p.Name + "\n");
}
}
Assert.IsTrue(constructorInfos.Length > 0);
}
/// <summary>
/// 动态创建对象
/// </summary>
[TestMethod]
public void DynamicCreateObject()
{
Type t = typeof(ReflectClass);
Type[] pt = new Type[2];
pt[0] = typeof(string);
pt[1] = typeof(string);
//根据参数类型获取构造函数
ConstructorInfo ci = t.GetConstructor(pt);
//构造Object数组,作为构造函数的输入参数
object[] obj = new object[2] { "wang", "男" };
//调用构造函数生成对象
object @object = ci.Invoke(obj);
//调用生成的对象的方法测试是否对象生成成功
((ReflectClass)@object).Show();
Assert.IsTrue(true);
}
/// <summary>
/// 使用Activator动态创建对象
/// </summary>
[TestMethod]
public void ActivatorDynamicCreateObject()
{
Type t = typeof(ReflectClass);
object[] obj = new object[2] { "wang", "男" };
后面还有 167 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
