存储阵列[,]在用户设置 [英] Store array[,] in user settings

查看:145
本文介绍了存储阵列[,]在用户设置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的问题很简单。你怎么能存储在程序的设置一个双阵列,并得到它出来。

My question is very simple. How can you store an double array in the settings of the program, and getting it out of it.

我已经得到了这一点:

string[,] user_credits = new string[user_credits_array, 10];
                    user_credits[new_user_id, 0] = user_name;
                    user_credits[new_user_id, 1] = user_email;
                    user_credits[new_user_id, 2] = user_acc_name;
                    user_credits[new_user_id, 3] = user_acc_pass;
                    user_credits[new_user_id, 4] = sSelectedClient;
                    user_credits[new_user_id, 5] = server_inkomend;
                    user_credits[new_user_id, 6] = server_uitgaand;
                    user_credits[new_user_id, 7] = server_port + "";
                    user_credits[new_user_id, 8] = ssl_state;

因此​​,大家可以看到,现在用的是用户的ID来存储信息在一起我。而我存储这种方式:

So as you can see, am i using the id of the user to store the info together. And I'm storing it this way:

Properties.Settings.Default.user_credits = user_credits;
Properties.Settings.Default.Save();

我这样做对吗?现在阵列仍在用户设置?

Am I doing it right? is now the array still in the user settings?

我怎样才能把它弄出来它(用正确的用户ID的设置)?

And how can I get it out of it (the settings with the right user id)?

我知道这听起​​来很疯狂,但我认为这是最好的方式。但是,如果你们知道一个更好的方式,告诉我。我

I know it might sound crazy, but i think this is the best way. But if you guys know an better way, tell me. I

编辑1:

我已经得到这块code的:

I've got this piece of code:

string[,] user_credits = new string[user_credits_array, 10];
user_credits[new_user_id, 0] = user_name;
user_credits[new_user_id, 1] = user_email;
user_credits[new_user_id, 2] = user_acc_name;
user_credits[new_user_id, 3] = user_acc_pass;
user_credits[new_user_id, 4] = sSelectedClient;
user_credits[new_user_id, 5] = server_inkomend;
user_credits[new_user_id, 6] = server_uitgaand;
user_credits[new_user_id, 7] = server_port + "";
user_credits[new_user_id, 8] = ssl_state;

MySettings settingsTest = new MySettings();
settingsTest.Save(MySettings.GetDefaultPath());
MySettings anotherTest = MySettings.Load(MySettings.GetDefaultPath());

和运行code之后,这是XML文件的样子:

And after running the code, this is how the XML file looks like:

<Complex name="Root" type="WeProgram_Mail.MySettings, WeProgram_Mail, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
  <Properties>
    <Null name="user_credits" />
  </Properties>

现在我不明白为什么不保存的数组。因为我有这行

Now I don't understand why the array isn't saved. Because I've got this line

public string[,] user_credits { get; set; }

和我认为这会拿起从数组中usersettings,但不知何故,他们没有。

And I thought that would pick up the usersettings from the array, but somehow they don't.

推荐答案

啊,我看这个问题。
当你在XML文件中看到,在MySettings实例阵列(settingsTest)为null。
那是因为你补settingsTest对象外的阵列和永远不会碰触或初始化settingsTest.user_credits ...

Ah, I see the problem. As you see in the XML file, the array in the MySettings instance(settingsTest) is null. That is because you fill the array outside the settingsTest object and never touch or initialize settingsTest.user_credits...

请尝试以下操作:

MySettings settingsTest = new MySettings();
settingsTest.user_credits = new string[user_credits_array, 10];
settingsTest.user_credits[new_user_id, 0] = user_name;
settingsTest.user_credits[new_user_id, 1] = user_email;
settingsTest.user_credits[new_user_id, 2] = user_acc_name;
settingsTest.user_credits[new_user_id, 3] = user_acc_pass;
settingsTest.user_credits[new_user_id, 4] = sSelectedClient;
settingsTest.user_credits[new_user_id, 5] = server_inkomend;
settingsTest.user_credits[new_user_id, 6] = server_uitgaand;
settingsTest.user_credits[new_user_id, 7] = server_port + "";
settingsTest.user_credits[new_user_id, 8] = ssl_state;


settingsTest.Save(MySettings.GetDefaultPath());
MySettings anotherTest = MySettings.Load(MySettings.GetDefaultPath());

这篇关于存储阵列[,]在用户设置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆