【问题标题】:How to batch modify classes modifier in a .Net Assembly from internal to public?如何批量修改.Net程序集中的类修饰符从内部到公共?
【发布时间】:2018-11-03 06:08:56
【问题描述】:

我有一个第三方 .Net 程序集 dll,我想知道是否有一个工具可以用来快速将所有 internal class 更新为 public class。我可以使用dnSpy来一一修改,但是效率不是很高。

【问题讨论】:

    标签: .net .net-assembly decompiling


    【解决方案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();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多