重命名所有变量和文字而不进行混淆

时间:2016-09-01 13:42:41

标签: c# .net visual-studio visual-studio-2015 resharper

我想重命名代码中的所有类和变量,使其更加模糊。例如,此示例代码:

public class Dog
{
   public Dog()
   {
      Bark(4);
   }

   private void Bark(int times)
   {
       //Do something
   }
}

变为:

public class Cat
{
   public Cat()
   {
      Wood(4);
   }

   private void Wood(int asdasd)
   {
       //Do something
   }
}

如果这是不可能的,或许更简单的地方我们只需在每个变量/名称的中间添加一个字符:

public class Do1g
{
   public Do1g()
   {
      Bar1k(4);
   }

   private void Bar1k(int time1s)
   {
       //Do something
   }
}

功能保持不变,并且是人类可读的;但是,有关变量命名,类,方法等的所有信息都会发生变化。

有没有办法混淆,同时保持可读性?

2 个答案:

答案 0 :(得分:1)

首先我不知道如何使用它,但是在评论中你说创建一个看起来像所需对象的新对象是可以接受的

这是我的建议

  1. 使用反射
  2. 阅读班级的所有方法
  3. 使用步骤1中的所有属性和方法名称创建一个列表
  4. 从那里你可以使用LINQ创建一个新对象,其名称是从你创建的列表中创建的。

    请记住,我不知道这是如何工作的,甚至是否可行。

答案 1 :(得分:1)

您可以使用Visual Studio代码模型重命名符号。例如,要将“x”添加到当前函数名称:

    EnvDTE.TextSelection ts = DTE.ActiveWindow.Selection as EnvDTE.TextSelection;
    EnvDTE80.CodeElement2 func = ts.ActivePoint.CodeElement[vsCMElement.vsCMElementFunction]
        as EnvDTE80.CodeElement2;
    func.RenameSymbol(func.Name + "x");

(您可以使用Visual Commander运行此代码或在您自己的扩展中使用)。

此重命名操作还会更新所有引用。您可以自然地扩展此示例以重命名类,名称空间和进程文件,项目。