如何在C#中使用反射从类型和设置属性值中按名称获取属性

利诺斯

我正在学习有关C#反射的知识,并在此过程中遇到了一些障碍。我在尝试执行以下操作时遇到一个示例问题:

  1. 创建学生的新实例-据我了解 Student sT = new Student()
  2. 获取实例类型-据我了解: var getType = sT.GetType();
  3. 从类型中按名称获取属性FullName-如何实现?
  4. 使用反射将属性值设置为“某些名称”。我怎样才能做到这一点?
using System;
using System.Reflection;

public class Program
{
    public static void Main()
    {
        //1. Create new instance of Stuedent

        Student sT = new Student();

        //2. Get instance type

        var getType = sT.GetType();

        var myStringProperties1 = getType.GetProperty("FullName",
                typeof(string));

        //3. Get property FullName by name from type  ????

        //4.  Set property value to "Some Name" using reflection        

    }
}

public class Student
{
    public string FullName { get; set; }

    public int Class { get; set; }

    public DateTime DateOfBirth { get; set; }

    public string GetCharacteristics()
    {
        return "";
    }
}

提前致谢。

莱塞德莱克

您快到了; 现在只需在属性信息上调用SetValue即可:

//1. Create new instance of Student
Student student = new Student();

//2. Get instance type
var getType = student.GetType();

//3. Get property FullName by name from type
var fullNameProperty = getType.GetProperty("FullName",
        typeof(string));

//4.  Set property value to "Some Name" using reflection
fullNameProperty.SetValue(student, "Some Name");

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在C#中使用反射获取方法的所有属性和属性数据

如何在C#中使用反射获取Json属性名称

如何在C#中通过反射获取属性值

如何在C#中按属性名称获取XML节点筛选的值?

如何使用反射获取C#中auto属性的默认值?

反射-获取属性的名称和值

如何使用 C# 反射获取实例化的属性或非 null 的类类型的属性

C#按属性名称获取Xelement属性值

如何在csv加载中设置属性名称和值?

如何在 C# 中获取类属性的属性值

使用反射C#获取JsonProperty属性的名称

如何使用反射获取注释类名称,属性值

在C#中使用反射设置属性{get;}

C#:使用反射获取名称的字段/属性/方法值(字符串或uint)

如何在WinRT中使用反射获取类的静态属性

如何在Kotlin中通过反射设置委托属性值?

在C#中获取属性值(反射)的最快方法

获取C#中的单个属性值的列表-反射

如何:在C#中使用反射发射定义自引用类型属性

使用CsvHelper时如何从C#动态对象获取属性名称和值?

如何在EF6中使用表名获取Entity及其属性和类型

如何使用反射递归获取类型的属性?

如何在 C# 中使用 XPathEvaluate 方法通过 Xpath 获取节点元素属性的值?

如何在C#中使用对象ID属性获取对象值

在 C# 中使用反射访问对象中的自定义属性及其值

如何在c#中使用反射获取列表类型元素

如何使用泛型按名称获取属性的类型

从C#中的动态JSON获取属性名称,然后在foreach循环中使用这些属性

反射:获取/设置属性的 PropertyType 属性的值