DotNet匿名类无法通过反射设置属性值

直接看代码

static void Main(string[] args)
{
var role = new
{
Name = "叶修",
Weapon = "却邪"
};
var type = role.GetType();
var property = type.GetProperty("Weapon");
property.SetValue(role, "千机伞");
Console.WriteLine(role.Weapon);
Console.ReadKey();
}

在运行到property.SetValue(role, "千机伞")时会报错System.ArgumentException:“未找到属性设置方法。”

但如果不使用匿名类就没事

static void Main(string[] args)
{
var role = new Role()
{
Name = "叶修",
Weapon = "却邪"
};
var type = role.GetType();
var property = type.GetProperty("Weapon");
property.SetValue(role, "千机伞");
Console.WriteLine(role.Weapon);
Console.ReadKey();
}

public class Role
{
public string Name { get; set; }
public string Weapon { get; set; }
}

简单记录一下。

加载评论框需要翻墙