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

Adm*_*and 3 c# reflection

我的系统中有一组课程.所以,我也有一个带有类名集合的简单配置文件.

我想运行这样的代码:

(object as Class).name="some text"; 
Run Code Online (Sandbox Code Playgroud)

Class是来自配置文件的类名字符串.可能我应该使用refletion来做到这一点?

谢谢!

xan*_*tos 6

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

object obj = ...
dynamic dyn = obj;
dyn.name = "some text";
Run Code Online (Sandbox Code Playgroud)

这只有namepublic.否则你可以用反射......

如果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)