我正在开发一个wpf应用程序。在这个应用程序中,我收到了来自服务器的JSON响应并反序列化如下: -
StreamReader streamReader = new StreamReader(jsonResponse.GetResponseStream());
String responseData = streamReader.ReadToEnd();
var myData = JsonConvert.DeserializeObject<List<RootObject>>(responseData);
//UserData ud = new UserData();
foreach (var val in myData)
{
string res = val.response;
if (res == "true")
{
this.Hide();
new lobby().Show();
}
}
我的课程如下: -
public class RootObject
{
public string response { get; set; }
public string user_id { get; set; }
public string username { get; set; }
public string current_balance { get; set; }
public string message { get; set; }
public string oauth_token { get; set; }
public List<string> lastFiveSpinNumbers { get; set; }
}
执行此代码时,一切正常,检查响应lobby.xaml
后打开。现在,我需要在RootObject
中访问lobby.xaml.cs
类的值。所以我创建了这个类的实例如下: -
RootObject cd = new RootObject();
UserNameTextBlock.Text = cd.response;
但cd.response
始终为空。可能是什么原因?
答案 0 :(得分:1)
您正在创建RootObject
的新实例,默认情况下response
属性为null
。
您可以为lobby
课程提供一个接收RootObject
的构造函数:
public class lobby
{
public lobby(RootObject rootObject)
{
UserNameTextBlock.Text = rootObject.response;
}
}
然后在foreach
你可以做到:
if (res == "true")
{
this.Hide();
new lobby(val).Show(); // Pass the root object to the Lobby constructor
}
注意:您可能希望将lobby
重命名为Lobby
以获取您的班级名称,这符合更好的C#
命名惯例。