gpt4 book ai didi

c# - 使用内部构造函数实例化类

转载 作者:IT王子 更新时间:2023-10-29 03:51:23 27 4
gpt4 key购买 nike

我有一个类,其构造函数定义为内部类,这意味着我无法实例化它。虽然这可能有道理,但出于调试和研究目的,我仍然想做一次。

是否可以通过反射来实现?我知道我可以访问私有(private)/内部成员,但我可以调用内部构造函数吗?

或者,由于构造函数不做任何重要的事情,我可以使用反射说“看,只要给我一个类的实例而不调用构造函数,我将手动完成它”?

性能和“稳定性”在这里不是问题,因为它不是生产代码。

编辑: 正如澄清:可悲的是,我不控制另一个程序集,也没有它的源代码,我只是想了解它是如何工作的,因为它的文档是非-存在,但我应该与之交互。

最佳答案

另一种方法是将调用程序集指定为“ friend ”程序集。

只需将其添加到包含内部构造函数的程序集的 AssemblyInfo.cs 文件中:

[assembly: InternalsVisibleTo("Calling.Assembly")]

如果你没有权限访问程序集,你也可以直接调用构造函数(使用反射):

MyClass obj = (MyClass) typeof(MyClass).GetConstructor(
BindingFlags.NonPublic | BindingFlags.Instance,
null, Type.EmptyTypes, null).Invoke(null);

关于c# - 使用内部构造函数实例化类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1199590/

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