小编G E*_*ves的帖子

IL-我在做什么错?

所以我是C#的中级程序员,最近我迷上了文件大小并创建了最小的文件。为此,我意识到将MSIL用于更简单的程序可以大量减少大小。

所以我尝试转换以下内容

  • 创建一个简单的下载器。设法轻松做到这一点。下载我的文件并将其保存为临时文件并运行它们。设法使其正常工作,并且大小为1,5kb,非常有用!

现在,做完这些之后,我想...为什么当我可以简单地使用反射并不必使用磁盘就可以运行它们时编写文件?

那就是问题所在,我找不到解决方案。

此代码有什么问题?

.assembly a{}
.subsystem 0x0002 
.class private AA1.B 
extends [mscorlib]System.Object{ 
.method private static void a(){
.entrypoint 
.maxstack 4 
.locals init (
[0] string str,
[1] uint8[] buffer)
nop
newobj instance void [System]System.Net.WebClient::.ctor() 
ldstr  "http://www.mywebwiste.com/myDotNetFile.exe"
call instance uint8[] [System]System.Net.WebClient::DownloadData(string)
stloc.1
ldloc.1
call class [mscorlib]System.Reflection.Assembly     [mscorlib]System.Reflection.Assembly::Load(uint8[])
callvirt instance class [mscorlib]System.Reflection.MethodInfo [mscorlib]System.Reflection.Assembly::get_EntryPoint()
ldnull
ldc.i4.0
newarr object
callvirt instance object [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
}}
Run Code Online (Sandbox Code Playgroud)

我编译的错误是“参考未声明的extern组装系统。” 和“引用未声明的extern程序集mscorlib”。我不是在宣布他们吗?它仍然可以编译它们,但是在运行时会崩溃。

c# reflection il download system.reflection

0
推荐指数
1
解决办法
419
查看次数

标签 统计

c# ×1

download ×1

il ×1

reflection ×1

system.reflection ×1