为何执行WriteXML后ReadXML的Main方法未自动执行?
问题原因及解决办法
核心原因
每个.NET控制台应用程序只会执行当前启动项指定的入口类的Main方法,这是.NET程序的运行机制决定的。当你把WriteXML设为启动项时,程序仅会运行WriteXML里的Main逻辑,不会自动触发ReadXML的Main方法——这两个Main是相互独立的入口点,不存在默认的顺序执行关系。
解决思路
根据你的需求,有几种可行的处理方式:
合并入口逻辑:在WriteXML的
Main方法末尾,直接调用ReadXML的读取逻辑(建议先把ReadXML的读取代码封装成独立方法,而非直接调用它的Main)。示例代码:// WriteXML类的Main方法 static void Main(string[] args) { // 原有写入XML的逻辑 WriteUserToXmlFile(); // 调用ReadXML类中封装好的读取方法 ReadXML.LoadAndProcessXmlFile(); }设置多启动项目:如果WriteXML和ReadXML是两个独立的控制台项目,可在Visual Studio中右键解决方案 → 属性 → 启动项目,选择多启动项目,将两个项目的操作都设为启动,并调整顺序让WriteXML优先运行。注意这种方式会启动两个独立进程,需额外处理文件生成完成的检测(比如加短暂延迟或文件存在性判断),避免ReadXML读取时文件还未生成。
重构项目结构:将写入、读取XML的逻辑封装到类库项目中,再新建一个控制台项目作为统一入口,在这个入口的
Main里依次调用写入和读取逻辑,这种方式更符合单一职责原则,也便于后续维护。
内容的提问来源于stack exchange,提问作者pipo1907
相关产品推荐
相关产品推荐

