2010-12-13 69 views
1

实际的代码我有一个应用程序像一些变量: public int temp = 10 ;修改程序

有,我可以改变我的临时变量,这样我的临时变量将包含在应用程序中的最后一个值的重新启动的方式,被存储在它吗?我想这样做没有配置文件。

(即我想在某个时候修改我的温度,如:temp = x;,其中x是一个整数后,我结束我的应用程序,并再次启动它,临时变量应包含x而不是10)

+1

在应用程序未运行或计算机重新启动时,值将存储在何处?你有持久的选择价值,它是一个文件或注册表设置(或远程计算机,但这是另一回事) – SWeko 2010-12-13 13:13:32

+0

你为什么要这样做?什么是令人不快的有一个配置文件? – 2010-12-13 13:14:46

+0

我比愿意这样做更有好奇心,这个问题我已经有一段时间了,终于有机会问这个问题,处于这种情况。 – Alex 2010-12-13 13:33:43

回答

1

我不建议这样做对于生产应用程序,但如果它只是病态的好奇心话,我建议你在本教程中有一个读:Modifying the IL at runtime。这不是一个我已经设法完成的教程,但是一段时间以后,我对使用IL/CLR感兴趣,并且对此感兴趣。你想用它在生产中的各种可以使用可用存储选项,应该坚持

什么:配置文件,数据库,文件系统,注册表等修改可执行文件是一个的事情,不应该”不要轻视。

2

你需要在某个地方坚持这个价值。根据您正在开发的应用程序的类型(WinForms,ASP.NET,...),某处可能会有所不同。例如,如果这是一个Windows应用程序,您可以使用Application Settings

+0

我正在开发一个WinForm应用程序,并希望避免只为4个整数创建另一个文件。不希望在我的程序后移动该文件。我会看看应用程序设置。谢谢 – Alex 2010-12-13 13:17:10

+0

@Badescu Alexandru,在Windows应用程序中使用应用程序设置非常简单。您所要做的就是使用Visual Studio Designer将设置文件添加到您的项目中,该项目将创建一个可用于加载和保存值的强类型类。 – 2010-12-13 13:26:07

3

那么它不一定是一个“配置”文件,但它显然需要坚持数据的地方。修改可执行文件本身似乎是一个相当激烈的做法,说实话......常见的存储选项包括文件系统和注册表......你想做什么,用那些更传统的方法解决不了什么?

+0

我正在开发一个WinForm应用程序,并希望避免只为我需要的4个整数创建另一个文件。不希望在我的程序后移动该文件。 – Alex 2010-12-13 13:18:00

+0

@Basescu:复制另一个文件可能比尝试重写可执行文件更清洁。特别是因为您将无法覆盖当前正在执行的文件... – 2010-12-13 13:24:23

0

您可以使用设置对象在应用中得心应手的读取/存储值

0

看来您的问题存在安全原因。 如果您不想在磁盘上存储数据(甚至是加密的)并且计算机不会重新启动,则另一个进程可以为您保留该值。

进程间通信有很多选项,但您需要传递加密的数据。

0

听起来像你正在寻找Orthogonal Persistence。很少有支持这种功能的编程语言。我认为没有支持正交持久性的主流语言。 Ref:Orthogonal Persistence article

对于C#,您至少必须使用配置文件,注册表或数据库。