c#中使用反射的一个类到另一个类的数据类型

本文关键字:一个 另一个 数据类型 反射的 | 更新日期: 2023-09-27 17:53:28

我有一个class

namespace MyNamespace1
{
    class MyClass
    {
        public string MyName { get; set; }
        public int? MaxHeaderLength { get; set; }
        public System.Collections.Generic.List<MyClass.ViewModel> Preferences { get; set; }
    }
}
namespace MyNamespace2
{
    internal class myClass1
    {
        public static void Main(string[] args)
        {
            var properties = loading assembly of the MyClass of MyNamespace1
            var prop = properties.GetProperties();
            foreach (var propertyInfo in prop)
            {
                Console.WriteLine(propertyInfo.PropertyType.FullName);
            }
        }
    }
}

当我想在运行时使用反射读取属性时

我得到的类型是

系统。字符串,

System.Nullable ' 1[[系统。Int32, mscorlib, Version=4.0.0.0,文化=中立,都必须要]],

System.Collections.Generic.List ' 1 [[System.Web.Mvc.SelectListItem,包含。Mvc,版本=3.0.0.0,文化=中性,都31 bf3856ad364e35]]),

但是我想检索为

string,
int?,
System.Collections.Generic.List<MyClass.ViewModel>
有谁能给我提供解决方案吗?

c#中使用反射的一个类到另一个类的数据类型

string, int?List<MyClass.ViewModel>都是c#结构。它们不在。net中。

因此,您只需构建一个查找表或一个巨大的switch来将类型名称转换为。net关键字。