gpt4 book ai didi

c# - 在 C# 中按类名作为字符串获取类属性

转载 作者:太空宇宙 更新时间:2023-11-03 20:18:46 25 4
gpt4 key购买 nike

如果我将类名作为字符串,我可以获取类属性吗?我的实体在类库项目中,我尝试了不同的方法来获取类型和获取程序集,但我无法获取类实例。

var obj = (object)"User";
var type = obj.GetType();
System.Activator.CreateInstance(type);

object oform;
var clsName = System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("[namespace].[formname]");

Type type = Type.GetType("BOEntities.User");
Object user = Activator.CreateInstance(type);

没有任何效果

最佳答案

我怀疑您正在寻找:

Type type = Type.GetType("User");
Object user = Activator.CreateInstance(type);

注意:

  • 这只会查找 mscorlib 和当前正在执行的程序集,除非您还在名称中指定程序集
  • 它需要是命名空间限定的名称,例如MyProject.User

编辑:要访问不同程序集中的类型,您可以使用程序集限定的类型名称,或者只使用Assembly.GetType,例如

Assembly libraryAssembly = typeof(SomeKnownTypeInLibrary).Assembly;
Type type = libraryAssembly.GetType("LibraryNamespace.User");
Object user = Activator.CreateInstance(type);

(请注意,我没有解决获取属性的问题,因为您的问题中没有其他内容谈到这一点。但是Type.GetProperties 应该可以正常工作。)

关于c# - 在 C# 中按类名作为字符串获取类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14978571/

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