Type.GetType(“namespace.classnameassemblyname”) 在 C# 中不起作用
Posted
技术标签:
【中文标题】Type.GetType(“namespace.classnameassemblyname”) 在 C# 中不起作用【英文标题】:Type.GetType(“namespace.classnameassemblyname”) not working in c#Type.GetType(“namespace.classnameassemblyname”) 在 C# 中不起作用 【发布时间】:2021-04-30 12:48:40 【问题描述】:Type type1=Type.GetType(namespace.classnameassemblyname) //string value
Type type =typeof(namespace.class name);//class name
如果我把这两个放在一起,那么 type1 会加载值,但是当只运行第 1 行时 type1 的值为 null,即使它们都是两个单独的变量 这是一个奇怪的问题
我需要使用激活器并使用字符串调用方法类和方法
【问题讨论】:
注意Assembly.qualified name在类名和程序集名之间必须有逗号。 【参考方案1】:我不知道我是否理解你的问题。您似乎正在寻找有关如何使用System.Activator
的信息。当您提出问题时,如果您可以提供尽可能多的代码、上下文和清晰性来帮助指导人们回答您的问题,这总是有帮助的。请考虑花一些时间查看Microsoft's documentation 中的说明和示例。
我写了几行示例代码来说明 Activator 可以接受 Type
参数之后的参数。该代码说明Person
对象可以通过需要字符串参数的构造函数创建,方法是在Activator.CreateInstance
中的typeof(Person)
参数之后添加该参数。希望这会有所帮助。
class Person
public string Name get; set;
public Person(string name)
Name = name;
class Program
static void Main(string[] args)
var result = Activator.CreateInstance(typeof(Person), "Joe");
if (result is Person person)
Console.WriteLine("Created new person:");
Console.WriteLine(person.Name);
【讨论】:
以上是关于Type.GetType(“namespace.classnameassemblyname”) 在 C# 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Type.GetType()反射另外项目中的类时返回null的解决方法
Type.GetType()反射另外项目中的类时返回null的解决方法
Type.GetType(string.contains(','))