2016-09-22 6 views
2

私はクラスライブラリにオブジェクトの戻り値の型を持つメソッドを持っています。私はjavascriptのデシリアライザを使用してオブジェクトデータを返しています。このクラスの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

を? – rbr94

+1

呼び出しクラスでは、 '動的'の代わりに 'オブジェクト'として 'obj'を宣言していますので、プロパティにアクセスすることはできません。 – 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; 

    } 
} 

はこのように使用することができます:あなたは `responseFromServer`を設定するのです

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

それとも

ClassName obj = HttpRequestResponse.Fetchresult<ClassName>(); 
関連する問題