You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确编写适配指定C#代码的GProvider.conf配置文件?

问题:GProvider.conf配置文件格式错误导致System.FormatException异常

我在编译一个现成项目时,发现缺失GProvider.conf配置文件,自行编写后反复出现「System.FormatException: Input string was not in a correct format.」错误。已知需要声明Host、Port、PwVersion参数,对应值分别为127.0.0.1、29300、156,结合以下C#代码,请问该.conf文件的正确编写方式是什么?

提供的C#代码:

namespace CoreAutoMessage.Models;

public record GProvider : IPwDaemonConfig
{
    public string Host { get; private init; }
    public int Port { get; private init; }
    public int PwVersion { get; private init; }

    public GProvider()
    {
        var gproviderConfs = File.ReadAllLines("./Configurations/GProvider.conf");

        this.Host = gproviderConfs[1];
        this.Port = int.Parse(gproviderConfs[3]);
        this.PwVersion = int.Parse(gproviderConfs[5]);
    }
}

当前编写的GProvider.conf内容:

Host:127.0.0.1
Port:29300
PwVersion:156

问题原因与正确配置方式

这段C#代码的读取逻辑非常固定:它直接按**行索引(从0开始)**读取配置值,且不会处理Host:这类键名前缀:

  • 取索引1(第2行)作为Host值,要求该行是纯IP地址,不能带Host:
  • 取索引3(第4行)转成int作为Port值,要求该行是纯数字,不能带Port:
  • 取索引5(第6行)转成int作为PwVersion值,要求该行是纯数字,不能带PwVersion:

同时你的当前配置只有3行,代码读取索引3、5时会超出有效行范围,或者读到空内容,直接触发格式转换异常。

正确的GProvider.conf写法

你需要按代码的索引要求编写配置,中间可以用空行或注释填充不需要读取的行:

# 第一行:注释或空行均可(代码不读取索引0)
127.0.0.1
# 第三行:注释或空行均可(代码不读取索引2)
29300
# 第五行:注释或空行均可(代码不读取索引4)
156

或者用空行简化:

127.0.0.1

29300

156

这样代码读取时,索引1、3、5对应的行都是符合要求的纯值,能正确解析,不会抛出格式异常。


内容的提问来源于stack exchange,提问作者Adrian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 03:50:27