gpt4 book ai didi

c# - 如何制作 "as Class",其中 Class 是字符串名称?

转载 作者:行者123 更新时间:2023-11-30 13:55:56 25 4
gpt4 key购买 nike

我的系统中有一组类。因此,我还有一个包含类名集合的简单配置文件。

我想运行这样的代码:

(object as Class).name="some text"; 

其中 Class 是他来自配置文件的类名字符串。也许我应该使用反射来做到这一点?

谢谢!

最佳答案

您可以忽略类型并直接使用 dynamic(内部使用反射)...

object obj = ...
dynamic dyn = obj;
dyn.name = "some text";

这仅在 namepublic 时有效。否则你可以使用反射...

如果 name 是一个属性:

Type type = obj.GetType();
PropertyInfo prop = type.GetProperty("name", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
prop.SetValue(obj, "some text");

如果是字段:

Type type = obj.GetType();
FieldInfo field = type.GetField("name", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
field.SetValue(obj, "some text");

关于c# - 如何制作 "as Class",其中 Class 是字符串名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31068576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com