如何将 .Net 程序集中的 类 修饰符从内部批量修改为 public?
How to batch modify classes modifier in a .Net Assembly from internal to public?
我有一个第三方 .Net 程序集 dll,我想知道是否有可以用来快速将所有 internal class
更新为 public class
的工具。我可以使用 dnSpy 对它们进行逐个修改,但效率不高。
你可以为此编写一个小工具。
使用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();
}
}
我有一个第三方 .Net 程序集 dll,我想知道是否有可以用来快速将所有 internal class
更新为 public class
的工具。我可以使用 dnSpy 对它们进行逐个修改,但效率不高。
你可以为此编写一个小工具。
使用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();
}
}