【发布时间】:2018-11-03 06:08:56
【问题描述】:
我有一个第三方 .Net 程序集 dll,我想知道是否有一个工具可以用来快速将所有 internal class 更新为 public class。我可以使用dnSpy来一一修改,但是效率不是很高。
【问题讨论】:
标签: .net .net-assembly decompiling
我有一个第三方 .Net 程序集 dll,我想知道是否有一个工具可以用来快速将所有 internal class 更新为 public class。我可以使用dnSpy来一一修改,但是效率不是很高。
【问题讨论】:
标签: .net .net-assembly decompiling
您可以为此编写一个小工具。
使用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();
}
}
【讨论】: