控制台应用程序.exe文件基本上是一个操作,它接受许多字符串参数(命令行参数,作为字符串数组呈现给Main())并执行一些操作。
Action(或Action>)是一个采取大量字符串参数并执行某些操作的操作。
如果我有一个.exe文件,从它创建一个Action对象非常简单,如下所示:
Action<String[]> a = args => <start external process, using args as arguments>
但是有没有办法走另一条路,也就是说,如果我有一个Action对象,我可以从它创建一个控制台应用程序.exe文件吗?最好尽可能自包含(即包含Action对象封装的所有代码的.exe文件,而不依赖于我原来的.exe文件,.dll文件等)。
编辑:澄清一点:我的应用程序是一个机器学习分类应用程序,它读取一些输入,以某种方式处理它们,从而产生一些分类器(例如,具有训练权重的神经网络)。现在我想将得到的分类器(神经网络或其他)输出到一个独立的exe文件中,稍后将用于测试或演示。到目前为止,我的解决方案是将分类器对象输出到文件(暂时使用二进制序列化),然后使用不同的控制台应用程序来读取此文件并使用它来对新数据进行分类。
然而,这种方法的问题(除了有点麻烦,因为我必须分发exe文件和分类器文件),它是脆弱的。这是一个研究项目,分类器代码发生了很大变化。因此,如果我上周从我的NeuralNetworkClassifier类(比如说)创建了一个分类器文件,它可能在下周不起作用,因为NeuralNetworkClassifier类(或它所依赖的其他类)可能已经改变。因此,除了学习的权重值之外,包含所有神经网络代码的自包含.exe文件将使我们的系统更加健壮。