Ich habe diese Klassen:eine Liste von einer anderen Klasse
class Game
{
public List<Participant> Participants = new List<Participant>();
}
class Participant
{
public int ChampionId { get; set; }
public string SummonerName { get; set; }
public int SummonerId { get; set; }
}
public class APICalls
{
//private Game game;
private string GetResponse(string url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
WebResponse response = request.GetResponse();
using (Stream responseStream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
return reader.ReadToEnd();
}
}
public void GetParticipants()
{
// create a string from the JSON output
var jsonString = GetResponse("https://euw1.api.riotgames.com/lol/league/v3/positions/by-summoner/27528610?api_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
// fill the Participants list from the Game class with participants based on the contents of the jsonString variable
Game.Participants = JsonConvert.DeserializeObject<Game>(jsonString);
}
}
Ich mag meine Teilnehmerliste in der Spielklasse mit der getParticipants Methode in der Klasse APICalls füllen. Mein Problem ist, dass ich nicht von dieser Klasse auf die Liste zugreifen kann.
Ich möchte meinen gesamten API-Code in einer Klassendatei behalten, weshalb ich diese Klasse gemacht habe.
Was mache ich falsch?
Sie können das nicht tun, weil Sie keine Instanz Ihrer 'Game' Klasse haben. Kann es immer nur ein "Spiel" geben? dann könntest du 'Game' vielleicht einen so genannten Singleton machen. –
Ich würde vorschlagen, einen Rückgabetyp für Ihre Funktionen, z. 'public Liste GetParticipants()', auf diese Weise können Sie eine Instanz von 'APICalls' wo immer Sie wollen, und verwenden Sie' GetParticipants(); 'Methode, um Werte manuell zuzuweisen. –