gpt4 book ai didi

c# - 调用 GetConstructor 时出现异常

转载 作者:行者123 更新时间:2023-12-02 22:33:30 26 4
gpt4 key购买 nike

我正在尝试通过反射构造以下类的实例。

public class Abc
{
private int _a;
public Abc(int a)
{
_a = a;
}


public void Show()
{
MessageBox.Show(_a.ToString());
}

}

我正在使用以下代码片段来获取类的构造函数,但是当代码到达 ConstructorInfo csInfo = typa.GetConstructor(types ); 我查了msdn,发现当Type[] types的任意一个元素为null时,就会出现这样的异常。我调试了一下,发现所有元素都有有效值。你能帮我找到实际问题吗?

Assembly ass = Assembly.GetExecutingAssembly();
Type typa = ass.GetType("Abc");
Type[] types = new Type[1];
types[0] = typeof(int);

ConstructorInfo csInfo =typa.GetConstructor(types);
object [] obj = { 10 };

var AbcObj = csInfo.Invoke(obj) as Abc;

AbcObj.Show();

谢谢

最佳答案

我编译了你的代码(VS2010),这一行导致空引用异常:

Type typa = ass.GetType("Abc");

typa 为空。那是因为你需要带命名空间的类名。例如:

Type typa = ass.GetType("ConsoleApplication1.Abc");

编辑:当然,只有当您的类位于命名空间中时,您才需要命名空间。

关于c# - 调用 GetConstructor 时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11819429/

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