2016-09-12 7 views
0

APIを使用してデータを取得するメソッドがクラスにあります。次に、私はJsonConvert.DeserializeObjectを使って同じクラスの別のインスタンスを作成し、次に値を私が入っているオブジェクトにコピーします。これはうまく動作しますが、これを行うにはより良い方法が必要であるようです。 (私はそれがSRPのためにさらにリファクタリングできることを知っています。メンバーに値を渡すより効率的な方法を探してみようと思っています)JsonConvert(C#)を使用して同じオブジェクトに逆シリアル化します

もっと良い方法を誰に教えてもらえますか?

  public class MyModel 
     { 
      public string Description { get; set; } 
      public string Last_Name { get; set; } 
      public string Nickname { get; set; } 


      public void Load() 
      { 
       var results = {code that gets stuff} 
       MyModel item = JsonConvert.DeserializeObject<MyModel>(results.ToString()); 

       this.Description = item.Description; 
       this.Last_Name = item.Last_Name; 
       this.Nickname = item.Nickname; 
      } 
      . 
      . 
      . 

     } 
+0

をしたいですか?デシリアライズのモデルですか?あなたが本当に欲しいモデル(あなたが値をコピーしたモデル)?これを行うコードは?私は良い質問をするのに十分な担当者を持っていると思う..... –

+0

私は、呼び出したこの同じオブジェクトのメンバーに着陸するAPIコールから取得するデータが必要です。このコードはこれを行いますが、それを行うより効率的な方法があるかどうかを調べています。 – Kenny

+0

@Nikitaコードとタグを読んでください。 OPはすでにそれを使用しています –

答えて

1

あなたはあなたの元のJSONは何この

class A 
     { 
      public int Id { get; set; } 

      public string Value { get; set; } 

      public void Load() 
      { 
       var json = @"{Id:1,Value:""Value""}"; 
       JsonConvert.PopulateObject(json, this); 
      } 
     } 
+0

それはそれかもしれません。私はJsonConvertのPopulateObjectメソッドに慣れていません。私は明日仕事に戻るときにそれを見ていきます。ありがとうございました。 – Kenny

+1

しかし、私は本当にこのようにすることをお勧めしません。 POCOオブジェクトは、その中にロジックだけを持つべきではありません。あなたは[Repository pattern](http://www.codeproject.com/Articles/526874/Repositorypluspattern-cplusdoneplusright) –

+0

を見てください。これは実際に私が探していたものでした!私はちょうどそれをテストし、それは働いた。私は間違いなくリポジトリのパターンを調べます。私はこれを正しく設計したいと思っており、少しずつそこに着いています。私はあなたの助けに感謝Filip。 – Kenny

関連する問題