修改程序中的实际代码

我在应用程序中有一些变量,如:  
public int temp = 10 ;
有没有办法可以修改我的临时变量,以便我的临时变量将在重新启动应用程序时包含存储在其中的最后一个值?我想在没有配置文件的情况下这样做。 (即我想在某些时候修改我的临时状态:
temp = x;
其中x是一个整数,在我关闭我的应用并再次启动它之后,临时变量应该包含
x
而不是10)     
已邀请:
我不建议为生产应用程序执行此操作,但如果它只是病态的好奇心,那么我建议您阅读本教程:在运行时修改IL。这不是我已经设法完成的教程,但不久之前我有兴趣玩IL / CLR并对此进行修改。 您希望在生产中使用它的任何内容都应该保留在您可以使用的各种可用存储选项中:配置文件,数据库,文件系统,注册表等。修改可执行文件是一件大事,不应该轻易考虑。     
好吧,它不一定是一个“配置”文件,但显然必须将数据保存在某个地方。修改可执行文件本身似乎是一种相当激烈的方法,说实话......常见的存储选项包括文件系统和注册表......你试图用那些更传统的方法无法解决这些问题?     
你需要在某个地方保留这个值。根据您正在开发的应用程序类型(WinForms,ASP.NET,...),这可能会有所不同。例如,如果这是Windows应用程序,则可以使用“应用程序设置”。     
您可以使用应用程序中的Settings对象来方便读取/存储值     
你的问题似乎有一个安全原因。 如果您不希望将数据存储在磁盘上(甚至是加密的)并且计算机不会重新启动,则另一个进程可以为您保留该值。 进程间通信有很多选项,但您需要传递加密数据。     
听起来你正在寻找正交持久性。很少有编程语言支持这种功能。我认为没有支持正交持久性的主流语言。参考:Orthogonal Persistence文章。 对于C#,您必须至少使用配置文件,注册表或数据库。     

要回复问题请先登录注册