2016-09-22 60 views
2

我有一个方法,它有一个类库中的对象返回类型,我正在使用JavaScript Deserializer并返回对象数据。并创建这个类的DLL并在另一个项目中调用这个类。我正在获取该类中的数据,但混淆了如何在标签控件中显示对象类型数据。如何在标签中显示对象变量值

这是类库方法:

public class HttpRequestResponse 
{ 
    private WebRequest request;  
     public object Fetchresult() 
    {   
     request = WebRequest.Create("URL");    
     request.Method = "GET"; 
     request.ContentType = "application/json; charset=utf-8"; 
     WebResponse response = request.GetResponse();     Console.WriteLine(((HttpWebResponse)response).StatusDescription); 
      dataStream = response.GetResponseStream(); 
      StreamReader reader = new StreamReader(dataStream); 
      string responseFromServer = reader.ReadToEnd(); 
     JavaScriptSerializer js = new JavaScriptSerializer(); 
     object obj = js.Deserialize<dynamic>(responseFromServer); 
     return obj;    

    } 
} 

这是调用类:

HttpRequestResponse cls = new HttpRequestResponse(); 
object obj= cls.Fetchresult(); 
Label3.Text = obj["name"]; 

我收到值obj但如何显示标签控制此值。 感谢

+1

你在哪里设置'responseFromServer'? – rbr94

+1

在调用类中,您已将'obj'声明为'object'而不是'dynamic',因此您无法访问属性。 – stuartd

+1

您可以添加属于您的回复的类还是只添加“obj”的内容? – rbr94

回答

0

下面是解

dynamic obj = cls.Fetchresult(i); 
0

也许,你会喜欢这一点。所以,你总是有一个你想要的类型的对象。

public class HttpRequestResponse 
{ 
    private WebRequest request; 
    public T Fetchresult<T>() 
    { 
     request = WebRequest.Create("URL"); 
     request.Method = "GET"; 
     request.ContentType = "application/json; charset=utf-8"; 
     WebResponse response = request.GetResponse(); 
     Console.WriteLine(((HttpWebResponse)response).StatusDescription); 
     var dataStream = response.GetResponseStream(); 
     StreamReader reader = new StreamReader(dataStream); 
     string responseFromServer = reader.ReadToEnd(); 
     JavaScriptSerializer js = new JavaScriptSerializer(); 
     var obj = js.Deserialize<T>(responseFromServer); 
     return obj; 

    } 
} 

可以使用此类似:

List<int> list = HttpRequestResponse.Fetchresult<List<int>>(); 

或者

ClassName obj = HttpRequestResponse.Fetchresult<ClassName>();