我的系统中有一组课程.所以,我也有一个带有类名集合的简单配置文件.
我想运行这样的代码:
(object as Class).name="some text";
Run Code Online (Sandbox Code Playgroud)
Class是来自配置文件的类名字符串.可能我应该使用refletion来做到这一点?
谢谢!
您可以忽略该类型并直接使用dynamic(内部使用反射)...
object obj = ...
dynamic dyn = obj;
dyn.name = "some text";
Run Code Online (Sandbox Code Playgroud)
这只有name是public.否则你可以用反射......
如果name是财产:
Type type = obj.GetType();
PropertyInfo prop = type.GetProperty("name", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
prop.SetValue(obj, "some text");
Run Code Online (Sandbox Code Playgroud)
如果是一个字段:
Type type = obj.GetType();
FieldInfo field = type.GetField("name", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
field.SetValue(obj, "some text");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |