如果Visual Studio 2010基于WPF,为什么我不能用反射器打开它?
换句话说,devenv.exe似乎是本机程序集,那么WPF UI代码在哪里?
我刚从RedGate下载了最后一个版本的Reflector,我无法在一些核心WPF程序集(如PresentationCore和PresentationFramework)中反编译.
这是描述我的问题的图片的链接:
谢谢您的帮助.
场景如下 -
public void MyMethod(IMyInterface object){}
问题是 -
代码 -
Assembly myAssembly = Assembly.LoadFrom("MyAssembly");
object classObject = myAssembly.CreateInstance("MyClass");
Type classType = myAssembly.GetType("MyClass");
MethodInfo myMethod = classType.GetMethod("MyMethod", BindingFlags.Instance);
// Creating an object of class in the latest assembly and need to pass this
// to method in assembly with different version.
ClassExtendingMyInterface obj= new ClassExtendingMyInterface ();
myMethod.Invoke(classObject, new object[] { obj});
Run Code Online (Sandbox Code Playgroud)
如果,我说得对,这是因为创建的对象是在不同的程序集中,并且该方法所期望的参数是它自己的程序集.
我想到的另一种方法是在类中创建我自己的动态方法,它将接受我的类的对象.
我试图通过Reflection.Emit或RunSharp来google并动态创建自己的类.但是,我们只能在动态生成的程序集中使用它,但不能在现有程序集中创建动态方法或类.
我知道在运行时生成程序集并不是一个好方法.但我现在想不出任何事情.谢谢你的帮助.
Reflector在自动属性中显示此信息:
public string AddressLine1
{
[CompilerGenerated]
get
{
return this.<AddressLine1>k__BackingField;
}
[CompilerGenerated]
set
{
this.<AddressLine1>k__BackingField = value;
}
}
Run Code Online (Sandbox Code Playgroud)
是否有任何加载项或其他工具将其转换为:
public string AddressLine1 { get; set; }
Run Code Online (Sandbox Code Playgroud)
我不相信这些加载项中的任何一个都支持上述内容:http://www.codeplex.com/reflectoraddins
如果你证明我错了,买就会很开心.
鉴于下面的示例源代码,是否有人可以看到_secret使用反汇编程序的价值?我没有看到通过 Reflector 获得价值的方法,但我没有经常使用它。假设代码没有以任何方式混淆。
class Foo
{
private string _secret = @"all your base are belong to us";
public void Foo()
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有一个我在Reflector中反汇编的DLL,然后生成一个类.该类包含无法在Visual Studio中编译的代码.
我认为它是leagl IL代码,但是如何从中生成更高级别的c#.
似乎yield和IEnumerator生成类似<>1__state;IL的东西,它们不会编译.
有谁知道如何从包含这种IL的反射器生成一个类?
是否有反射器插件可以解决这个问题?
private sealed class <Rule_Document>d__0 : IEnumerable<HtmlTag>, IEnumerable, IEnumerator<HtmlTag>, IEnumerator, IDisposable
{
private int <>1__state;
private HtmlTag <>2__current;
public HtmlParser <>4__this;
private int <>l__initialThreadId;
public HtmlTag <htmlTag>5__1;
Run Code Online (Sandbox Code Playgroud) 我从CIL到C#转换器(.Net反射器)恢复了以下类.不幸的是,VS2010不会编译它.知道如何让它工作吗?
using System;
using System.IO;
using System.Reflection;
internal class <Module>
{
static <Module>()
{
IPLRes.ExeDirectory = new FileInfo(Assembly.GetExecutingAssembly>>().Location).DirectoryName;
AppDomain expr_1E = AppDomain.CurrentDomain;
expr_1E.AssemblyResolve += new ResolveEventHandler(expr_1E.AssemblyNotFound);
IPLRes.LogDirectory = IPLRes.ExeDirectory + "\\log";
IPLMsg.Log("Loader", "Application starting...");
}
public static Assembly AssemblyNotFound(object A_0, ResolveEventArgs A_1)
{
string text = A_1.Name;
text = text.Remove(text.IndexOf(","));
text = IPLRes.ExeDirectory + "\\bin35\\" + text + ".dll";
return Assembly.LoadFile(text);
}
[STAThread]
public static void IPLMain(string[] A_0)
{
if (A_0.Length >= 1)
{
IPLRes.BatchMode = A_0[0].Contains("batch");
}
if (!IPLRes.BatchMode) …Run Code Online (Sandbox Code Playgroud) 有没有办法阻止.NET Reflector在程序中工作?
例如:我正在开发一个具有机密数据的程序(如gMail地址和密码),我不希望有人能看到它们.
我怎样才能做到这一点?
可能的重复:
从 jar 文件更改类的代码
我从 .Net 那里得到了这个,那里有 Reflector 和 Reflexil,使我能够打开程序集并编辑其代码,而无需重新编译它。我做了一些研究,发现了 jd-gui,它可以让我查看 jar 内的 java 代码,但我找不到任何类似于 reflexil 的东西。
有没有什么软件可以让我修改 jar 而不必重新编译它们?
reflector ×10
c# ×5
.net ×3
wpf ×3
assemblies ×1
c#-3.0 ×1
cil ×1
decompiling ×1
disassembly ×1
jar ×1
java ×1
module ×1
reflection ×1
reflexil ×1