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 积分,解读结果公开显示在下面。

还没有人解读过这个文件。