2017-06-21 19 views
0

私は非常に単純なAPIを実装しようとしています。ステータスを変更する必要があるtvオブジェクトをインスタンス化する必要があります(オフからオンへ、オンからオフへ)。私の現在の問題は、getメソッドの状態を変更した後、tvオブジェクトが再インスタンス化されるということです。リクエストより長い時間オブジェクトを保持する方法

2つ以上のリクエストに対してオブジェクトを永続化する簡単な方法はありますか?

ここに私のコード:

public class TvController : ApiController 
    { 
     Tv tv = new Tv(null, null, false); 

     // GET: api/Tv 
     [HttpGet] 
     public bool Get() 
     { 

      if (!tv.Status) { tv.Status = true; } 
      else { tv.Status = false; } 

      return tv.Status; 
     } 


public class Tv 
    { 
     public string Channel { get; set; } 
     public string Volume { get; set; } 
     public bool Status { get; set; } 

     public Tv(string channel, string volume, bool status) 
     { 
      Channel = channel; 
      Volume = volume; 
      Status = status; 
     } 
    } 
} 

答えて

1

あなたのAPIはステートレスであるので、あなたは(おそらくあなたがオブジェクトと一緒にAPIキーを格納するルックアップテーブルのいくつかの並べ替えで、要求を永続化する方法を把握する必要があります

SessionをAPIコントローラで使用できるかどうかはわかりませんが、ポイント全体を破る可能性がありますが、可能であれば次の操作を行います。

そして、あなたのコードは、これを実行するように更新する必要があります:

if(Session["TVObject"] == null) { 
    Tv tv = new Tv(null, null, false); 
    Session.Add("TVObject", tv); 
} else { 
    Tv tv = Session["TVObject"] as Tv; 
} 
関連する問題