首页 > 后端开发 > C++ > 如何在 C# 中从外部程序集访问内部类?

如何在 C# 中从外部程序集访问内部类?

Patricia Arquette
发布: 2025-01-01 09:13:10
原创
987 人浏览过

How Can I Access Internal Classes from External Assemblies in C#?

从外部程序集访问内部类

在某些情况下,您可能会遇到这样的情况:您正在使用的程序集提供了返回对象类型的方法,但该方法对象实际上属于不可访问的程序集中的内部类。这就提出了如何从您自己的程序集中访问该内部类的字段和方法的问题。

解决方案:InternalsVisibleTo

虽然修改供应商提供的程序集是不可能的,但有如果您希望允许特定程序集访问供应商程序集的内部成员以进行测试,这是一个解决方案。这可以使用 InternalsVisibleTo 属性来实现。

在项目的 AssemblyInfo.cs 文件中,添加以下行:

[assembly: InternalsVisibleTo("name of assembly here")]
登录后复制

此行授予指定程序集对内部成员的访问权限您的程序集,包括您尝试访问的内部类。

用法

一旦您添加了 InternalsVisibleTo 属性并重建了程序集后,您可以从外部程序集访问内部类,如下所示:

public class MyClass
{
  public void AccessTest()
  {
    Vendor vendor = new Vendor();
    object value = vendor.Tag;

    // Cast the object to the internal class type
    InternalClass internalClass = (InternalClass)value;

    // Access the internal member
    string test = internalClass.test;
  }
}
登录后复制

注意: 确保您授予访问权限的程序集非常重要to 仅用于测试目的,因为如果在生产中使用它可能会损害应用程序的安全性。

以上是如何在 C# 中从外部程序集访问内部类?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板