标签: reflector

反射器的开源替代品?

只是想知道是否有人知道RedGate的Reflector的开源替代品?我很想知道一个类似于Reflector的工具是如何工作的.

请注意,如果您知道Reflector 的免费但开源替代方案,您可以回答以下相关问题:

摘要 - 2011年5月11日更新

快速汇总已建议的各种开源项目和工具:

  1. 通用编译器基础结构(CCI)
  2. 单声道塞西尔
  3. ILSpy
  4. dnSpy(ILSpy的分支,项目看起来比原来更活跃)
  5. Dotnet IL编辑器(DILE)
  6. IL.View
  7. Monoflector(截至2011年4月不再有效)

以下资源也可能是有意义的:

  • TypeView.cs
  • Jason Haley关于拆解.NET的说明
  • Adrian Bank最近的博客文章总结了许多Reflector的替代方案,包括下面没有提到的几个选项.
  • Mark Lichtenberg的详细博客文章将几个开源替代品(DILE,ILSpy和使用MonoDevelop的Mono Cecil)与Reflector进行了比较.

.net reflection reflector open-source

419
推荐指数
8
解决办法
12万
查看次数

比.NET Reflector更好的东西?

我过去常常喜欢Reflector,但自RedGate接手以来,它已经大幅下滑.现在它迫使我更新(这绝对是荒谬的),有一半时间更新不顺利,而且每次更新都会越来越妨碍我的工作效率.我厌倦了,我准备好了更好的东西.有人知道更好的反汇编吗?


更新:

答案中提到的各种替代品清单 -

.net reflector redgate

360
推荐指数
7
解决办法
17万
查看次数

是否有.NET Reflector的"免费"替代品?

可能重复:
比.NET Reflector更好的东西?

可能重复:
反射器的开源替代品?

我不认为这是重复的,因为其他问题的联系是关于学习反射器如何工作,这个问题是关于当反射器停止自由时的应对

现在Red-Gate已经说过.NET Reflector将不再是免费的,是否有一种替代方案可以节省获得批准采购订单的痛苦?

似乎jetbrains可能会推出一个工具:

好消息是,我们正在准备一个独立的二进制源代码应用程序,即反编译器+汇编浏览器,以探索任何.NET编译代码合法探索的内容.我们没有任何具体的发布日期,但它将在今年发布,而且它将是免费的.通过说"自由",我们实际上意味着"自由".

此外ilspy是一个新的开源工具,它似乎正在取得良好进展.ILSpy是开源.NET程序集浏览器和反编译器.

Red Gate宣布.NET Reflector的免费版本将于2011年2月底停止存在之后开始开发.

.net reflector open-source

79
推荐指数
1
解决办法
7万
查看次数

为什么检查这个!= null?

偶尔我喜欢花一些时间查看.NET代码,看看事情是如何在幕后实现的.我在String.Equals通过Reflector 查看方法时偶然发现了这个宝石.

C#

[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
public override bool Equals(object obj)
{
    string strB = obj as string;
    if ((strB == null) && (this != null))
    {
        return false;
    }
    return EqualsHelper(this, strB);
}
Run Code Online (Sandbox Code Playgroud)

IL

.method public hidebysig virtual instance bool Equals(object obj) cil managed
{
    .custom instance void System.Runtime.ConstrainedExecution.ReliabilityContractAttribute::.ctor(valuetype System.Runtime.ConstrainedExecution.Consistency, valuetype System.Runtime.ConstrainedExecution.Cer) = { int32(3) int32(1) }
    .maxstack 2
    .locals init (
        [0] string str)
    L_0000: ldarg.1 
    L_0001: isinst string
    L_0006: stloc.0 
    L_0007: ldloc.0 
    L_0008: brtrue.s L_000f
    L_000a: …
Run Code Online (Sandbox Code Playgroud)

.net c# clr reflector

71
推荐指数
3
解决办法
7636
查看次数

如何保护.NET程序集免受反编译?

我开始使用C#时学到的第一件事就是最重要的一件事.您可以使用Reflector或其他工具反编译任何.NET程序集.许多开发人员都不知道这个事实,当我向他们展示他们的源代码时,他们中的大多数都感到震惊.

防止反编译仍然是一项艰巨的任务.我仍在寻找一种快速,简便,安全的方法.我不想混淆我的代码,所以我的方法名称将是a,b,c左右.反射器或其他工具应该无法将我的应用程序识别为.NET程序集.我已经了解了一些工具,但它们非常昂贵.有没有其他方法来保护我的应用程序?

编辑:

我的问题的原因不是防止盗版.我只想阻止竞争对手阅读我的代码.我知道他们会,他们已经做到了.他们甚至告诉过我.也许我有点偏执,但商业竞争对手阅读我的代码并不能让我感觉良好.

.net c# reflector decompiling

68
推荐指数
6
解决办法
10万
查看次数

你如何找到界面的所有实现?

假设您有一个在C#中定义的接口.查找提供接口实现的所有类的最简单方法是什么?

蛮力方法是在Visual Studio中使用"查找引用"并手动查看结果以将实现与实现分开,但是对于大型代码库中的接口而言,这些接口被相对较少的实现大量引用,这可以是耗时且容易出错.

在Java中,在代码库上运行javadoc(使用-private选项包含私有类)将生成接口的文档页面(例如Comparable),其中包括接口的所有实现类以及任何子接口(尽管它没有包括实现子接口的类,通过深入查看列出的子接口可以相对容易地确定这些类.这是我正在寻找的功能,但使用C#和Visual Studio.

c# resharper reflector visual-studio

62
推荐指数
6
解决办法
2万
查看次数

C#反射并找到所有引用

给定一个DLL文件,我希望能够找到该DLL文件中所有方法的调用.我怎样才能做到这一点?

从本质上讲,我如何以编程方式执行Visual Studio已经执行的操作?

我不想使用像.NET Reflector这样的工具来做到这一点,但反射很好,可能是必要的.

c# reflection reflector reference

37
推荐指数
2
解决办法
3万
查看次数

为什么Console.Out.WriteLine存在?

实际上问题应该是为什么Console.WriteLine只是为了成为一个包装Console.Out.WriteLine

我发现这个小方法使用intellisense,然后打开.NET反射器和'反编译' Console.WriteLine方法的代码,发现这个:

public static void WriteLine(string value)
{
    Out.WriteLine(value);
}
Run Code Online (Sandbox Code Playgroud)

那么为什么这样WriteLine实现呢?它完全只是一条捷径还是有另一个原因?

.net c# windows reflector console-application

27
推荐指数
2
解决办法
9246
查看次数

我可以使用.NET Reflector快速修改和重新编译代码吗?

是否有可能使用.net反射(或其他工具)来修改和重新编译代码(即没有倾销源,然后使用Visual Studio的重新编译)?

.net reflector .net-reflector

22
推荐指数
1
解决办法
3万
查看次数

单反的.NET Reflector

是否有相当于单反的.NET Reflector?快速谷歌搜索没有找到任何东西......或者我可以在Mono上运行Reflector(比如说,在Mac OS X中)?

mono reflector

18
推荐指数
2
解决办法
2万
查看次数