如何在 c# 应用程序上使用 XML 文件选择和更改 COM 端口?

How can I select and change COM port using XML file on my c# application?

提问人:PB stack 提问时间:10/24/2023 更新时间:10/24/2023 访问量:36

问:

我有一个 c# windows 应用程序,它使用可用的调试板 COM 端口来运行。

我想创建一个 settings.xml 文件,以便应用程序使用 xml 文件而不是使用硬编码的 COM 端口号来选取 COM 端口(例如:string command = “command filename.py...COM16 ...命令“)。

C# XML 调试 com-port

评论

0赞 Slepoyi 10/24/2023
最直接的方法是简单地创建一个具有相同结构的类和一个类,然后在启动时读取它,反序列化它并使用该类中的数据。settings.xml
0赞 Palle Due 10/24/2023
你的问题需要更具体。创建设置文件或初始化给定 COM 端口时遇到问题吗?
0赞 PB stack 10/24/2023
初始化 COM 端口以及如何在我的 C# 代码中指定 XML

答:

0赞 Slepoyi 10/24/2023 #1

创建您的 .例如,它具有以下结构:settings.xml

<?xml version="1.0"?>
<COMSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Port>COM16</Port>
</COMSettings>

创建类以将 xml 反序列化到其中:

public class COMSettings
{
    public string Port { get; set; };

    // some other data if needed
 
    public COMSettings() { }
    public COMSettings(string port)
    {
        Port = port;
    }
}

用法很简单 - 读取和反序列化 xml,然后只使用您的端口值。

using System.Xml.Serialization;

...

// somewhere in your app
var xmlSerializer = new XmlSerializer(typeof(COMSettings));

using (var fs = new FileStream("settings.xml", FileMode.OpenOrCreate));

var settings = xmlSerializer.Deserialize(fs) as COMSettings;

// usage
var command = $"command filename.py {settings.Port}";

评论

0赞 DavidG 10/24/2023
ChatGPT 生成的内容在 Stack Overflow 上被禁止
0赞 PB stack 10/24/2023
谢谢。什么是FS?
0赞 Slepoyi 10/26/2023
@DavidG我不知道你为什么认为它是由 chatgpt 或 smth 生成的
0赞 Slepoyi 10/26/2023
@PBstack是一个(在我的示例中初始化):fsFileStreamXmlSerializerusing (var fs = new FileStream("settings.xml", FileMode.OpenOrCreate));