C# cmd行应用程序在第一次调用时创建对象,在所有后续调用中使用对象

C# cmd行应用程序在第一次调用时创建对象,在所有后续调用中使用对象,c#,command,cmd,C#,Command,Cmd,我想在C#中创建一个命令行应用程序,用户可以将其用作脚本语言。我的意思是,在应用程序第一次运行时,会创建一个对象的实例,并在会话的其余部分保持不变。从命令行对应用程序的任何后续调用都使用以前设置的参数 例如,如果您有一个名为woo.exe的应用程序,它创建了一个名为ball的对象。Ball有一个名为changeColor的方法,它接受字符串作为输入。我们对changeColor的命令行调用是 胡变红 现在,如果ball有一个方法getColor(),该方法返回ball对象的颜色,调用命令 woo

我想在C#中创建一个命令行应用程序,用户可以将其用作脚本语言。我的意思是,在应用程序第一次运行时,会创建一个对象的实例,并在会话的其余部分保持不变。从命令行对应用程序的任何后续调用都使用以前设置的参数

例如,如果您有一个名为woo.exe的应用程序,它创建了一个名为ball的对象。Ball有一个名为changeColor的方法,它接受字符串作为输入。我们对changeColor的命令行调用是

胡变红

现在,如果ball有一个方法getColor(),该方法返回ball对象的颜色,调用命令

woo getColor 您的颜色是红色(输出来自Console.WriteLine(“您的颜色是{0}”,color))

这样,用户可以创建批处理文件,通过多次调用程序在单个对象上运行方法


非常感谢您的帮助。

一种可能的方法是:

  • 调用woo.exe,创建对象
  • 现在woo.exe完成了,对吗?以任何方便的格式将对象序列化到磁盘(我会选择XML,因为它在C#中具有表达性且易于解析)
  • 将使用新参数再次调用woo.exe。加载对象,进行更改,然后再次序列化
另一种可能的方式:

  • woo.exe首次加载,创建对象并等待
  • 加载另一个实例,通过进程间通信(管道或本地网络)查找第一个实例,并向其发送命令(调用方法)
  • 第一个实例就像服务器一样,保存对象并对其执行更改

详细说明@alxx的建议-这完全取决于该对象在属性更改之间所做的操作。如果它所做的只是记住这些值,那么使用第一个建议。如果对象做了一些事情(如果您将颜色设置为红色,则某些东西会变为红色),那么您可能需要在某个进程内的某个位置使用这些东西,这将是您自己的进程,您应该接受第二个建议。

您想为我们编写代码吗?那你就得不到任何答案了。这里不是代码服务:)您没有真正定义会话是什么。但是,如果要在控制台应用程序进程退出后将其持久化,则建议您将最后一个值写入配置文件。如果要以这种方式处理,则必须序列化数据。要么是这样,要么就是有一个后台运行的服务供woo.exe使用。在阅读了更多关于序列化方法的内容后,我想我被说服了。我正在使用一个这样运行的程序,但找不到二进制文件的存储位置。我需要编写一个类似的程序,并将使用序列化方法。谢谢你的帮助。