我有一个第三方.Net程序集dll,我想知道是否有可以用来将所有internal class
快速更新为public class
的工具。我可以使用dnSpy一步一步地修改它们,但这不是很有效。
答案 0 :(得分:1)
您可以为此编写一个小工具。
使用Mono.Cecil并遍历Module
中的所有类型,然后将IsPublic
更改为true
。之后,只需调用Write。
类似这样的东西:
static void Main(string[] args)
{
using (AssemblyDefinition a = AssemblyDefinition.ReadAssembly(args[0], new ReaderParameters { ReadWrite = true }))
{
foreach (var type in a.Modules[0].Types)
{
if (type.IsNotPublic)
type.IsPublic = true;
}
a.Write();
}
}