gpt4 book ai didi

c# - 隐藏类型不在 .net 中的 Assembly.GetTypes 中列出

转载 作者:太空狗 更新时间:2023-10-29 17:51:04 30 4
gpt4 key购买 nike

我一直在到处寻找可能的解决方案,但似乎找不到答案。我的问题是我有一些类需要从 Assembly.getTypes 中完全隐藏,因为我正在为应用程序编写插件,并且它正在获取我需要保持隐藏的类型(即使它们被声明为私有(private)或内部类)。

任何人都知道如何改变 assembly.GetTyes 返回的内容,或者一个 aficionado 属性来防止这些类型被列出?

最佳答案

这是一个很好的 hack,非常脆弱,但可以工作。

创建 2 个程序集 -- 一个用于插件,第二个用于其他类型。第二个将放置在另一个已知 目录中,并在需要时动态加载到第一个目录中。 (例如,通过 Assembly.LoadFrom 。)

然后第一个程序集将被放置在插件目录中并且只发布它的类型。这非常脆弱,因为您可能必须对第二个程序集的路径进行硬编码,并且冒着文件被删除或移动的风险。

编辑
@SLaks 的评论消除了该解决方案的脆弱性。如果您将第二个程序集作为资源嵌入并在运行时加载它,则调用 Assembly.GetTypes 的应用将看不到您想要隐藏的类型。

关于c# - 隐藏类型不在 .net 中的 Assembly.GetTypes 中列出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8569030/

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