1
我有一個函數,可以在一個類中設置2個列表以從第三方提取。
我把它放在一個函數中,因爲去第三方需要時間,我只想爲這個頁面做一次。 這是我的課:如果屬性已經設置,我該如何防止函數被調用?
public class MyClass
{
public IEnumerable<dynamic> ListOne { get; set; }
public IEnumerable<dynamic> ListTwo { get; set; }
}
這是我的職責,設置&返回列表
public MyClass GetLists()
{
//Here I have the code that connects to the third party etc
//Here set the items.. from the third party
MyClass _MyClass = new MyClass();
_MyClass.ListOne = ThirdParty.ListOne;
_MyClass.ListTwo = ThirdParty.ListTwo;
return (_MyClass);
};
}
所以,現在在我的web API我有2個功能 - 它返回每個列表。
[Route("ListOne")]
public IHttpActionResult GetListOne()
{
IEnumerable<dynamic> ListOne = GetLists().ListOne;
return Json(ListOne);
}
[Route("ListTwo")]
public IHttpActionResult GetListTwo()
{
IEnumerable<dynamic> ListTwo = GetLists().ListTwo;
return Json(ListTwo);
}
我的問題是,每一個我稱之爲的WebAPI getListone或getListTwo時間,該功能將再次運行,並調用第三方。我怎樣才能防止這一點?
謝謝!
謝謝你的回覆。我有兩個問題a)我認爲我不應該在財產本身中投入很多代碼? (連接到第三方時有相當多的代碼)b)如果我的ThirdParty.listOne恰好返回null,它會再次執行,不是? – shw
你可以把主要的數據檢索邏輯放在別的地方,只是從屬性中調用這個邏輯。 –
我會這樣做的。謝謝 – shw