【问题标题】:Saving a List<string> to a .json config file将 List<string> 保存到 .json 配置文件
【发布时间】:2018-09-12 04:56:33
【问题描述】:

好的,我正在使用 Discord.net,为 discord(很明显)创建一个机器人,并且我想在命令处理程序中添加一个简单的“添加默认角色”,这很容易实现,但是,我希望它能够阅读来自 (Configuration.json) 文件,因为我们偶尔会更改名称,或者想在默认值中添加另一个角色,请记住这是一个私人机器人,而不是个人,并且只会在一个服务器中。

我正在尝试使用 public List&lt;string&gt; Roles { get; set; }

当使用Configuration.SaveJSON(); 时,它会将其保存为null,这对我来说没问题,但是当我尝试使用该命令添加角色时,我得到一个nullreferenceexeption。

var Roley = new Configuration();
                    var roles = Roley.Roleys;
                    roles.Add("PSN");
                    Roley.SaveJson();

在我的脑海中,这应该可以工作,现在将“PSN”添加到列表中,但它没有,它给了我一个空引用,当我试图设置它时,我无法绕过它。

【问题讨论】:

标签: c# discord discord.net


【解决方案1】:

从你所说的,当它保存时,它会保存null。含义Roleys 为空

这意味着roles.Add("PSN"); 行将抛出一个空异常

这意味着如果你有类似的东西在你的Configuration

public List<string> Roleys {get; set; }

你需要它是

public List<string> Roleys {get; set; } = new List<string>();

【讨论】:

  • 任何想法为什么它会替换前一个,就好像它是一个字符串而不是一个列表? config.Roleys.add 应该可以工作,但它只是替换它。不管怎样,感谢您的回复,它成功了!
  • roles.Add(role); Roley.SaveJson();是命令,我之前发过声明var roles = new Configuration(); var roles = roles.Roley
  • 忘了说,我是存到一个字符串里的,这个字符串叫'role'
  • 非常感谢您的回复,我一辈子都想不通!
  • 我不知道这是否允许(发布链接),但我想不出更好的方式来向您发送代码,因为在 cmets 中进行编辑只是令人讨厌的困难和愚蠢,所以这是一个hastebin,带有标记来说明它是什么以及发生了什么。谢谢您的帮助。 hastebin.com/walevopexa.cs
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-28
  • 1970-01-01
  • 2013-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-17
相关资源
最近更新 更多