public class Api:Idisposable
{
HttpClient _Client;
Public Api()
{
_Client = new HttpClient();
//Define _Client properties
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
//lot of other functions
protected virtual void Dispose(bool disposing)
{
if (!_isDisposed)
{
_isDisposed = true;
if (disposing)
{
_Client.Dispose();
_Client = null;
}
}
}
< /code>
Also ... httpclient ist eine verwaltete Ressource, die auf den Punkt gebracht wird, dass es die Methode enthält, die ich nach dem Abschluss von mir anrufen muss. Wenn ich das nicht tue, wird mein _client -Objekt eine unmanagierte Ressource.Api _Example = new Api();
_Example.function1();
_Example.Function2();
< /code>
Im obigen Code wird der _client in api niemals aufgerufen, so dass er nicht verwaltet wurde? Und um es verwaltet zu machen, muss ich api.dispose () hinzufügen (), nachdem ich es beendet habe?using (Api _Example = new Api())
{
_Example.function1();
_Example.Function2();
}
< /code>
Anweisung "Verwenden" standardmäßig tätigt ein Aufruf an api.dispon (), der _client aus dem Gedächtnis automatisch veröffentlicht wird. API mit unterschiedlichen Endpunkten für verschiedene Schweinswale. Ich finde es also einfacher zu lesen (alle Kommentare dazu sind auch willkommen) < /p>
public class AnotherAnotherClass
{
private void ApiCall()
{
using (Api _Api = new Api())
{
_Api.DummyExample();
}
}
}
public class Api : IDisposable
{
HttpClient _Client;
public Api()
{
_Client = new HttpClient();
//Define _Client properties
}
protected void DummyExample()
{
bool Continue = true;
string EndPoint;
while (Continue)
{
EndPoint = //change based in alot of options
HttpResponseMessage Response = _Client.GetAsync(_Client.BaseAddress + EndPoint).Result;
if (Response.IsSuccessStatusCode)
{
AnotherClass ResultApi = JsonConvert.DeserializeObject(Response.Content.ReadAsStringAsync().Result);
if (PrecioAPI.Count == 0)
{
Continue = false;
}
}
}
}
}
Nur um zu sehen, ob ich korrekt verwaltete und nicht verwaltete Ressourcen unterstreiche.[code]public class Api:Idisposable { HttpClient _Client; Public Api() { _Client = new HttpClient(); //Define _Client properties }
public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } //lot of other functions protected virtual void Dispose(bool disposing) { if (!_isDisposed) { _isDisposed = true;
if (disposing) { _Client.Dispose(); _Client = null; } } } < /code> Also ... httpclient ist eine verwaltete Ressource, die auf den Punkt gebracht wird, dass es die Methode enthält, die ich nach dem Abschluss von mir anrufen muss. Wenn ich das nicht tue, wird mein _client -Objekt eine unmanagierte Ressource.Api _Example = new Api(); _Example.function1(); _Example.Function2(); < /code> Im obigen Code wird der _client in api niemals aufgerufen, so dass er nicht verwaltet wurde? Und um es verwaltet zu machen, muss ich api.dispose () hinzufügen (), nachdem ich es beendet habe?using (Api _Example = new Api()) { _Example.function1(); _Example.Function2(); } < /code> Anweisung "Verwenden" standardmäßig tätigt ein Aufruf an api.dispon (), der _client aus dem Gedächtnis automatisch veröffentlicht wird. API mit unterschiedlichen Endpunkten für verschiedene Schweinswale. Ich finde es also einfacher zu lesen (alle Kommentare dazu sind auch willkommen) < /p> public class AnotherAnotherClass { private void ApiCall() { using (Api _Api = new Api()) { _Api.DummyExample(); } } }
public class Api : IDisposable { HttpClient _Client; public Api() { _Client = new HttpClient(); //Define _Client properties } protected void DummyExample() { bool Continue = true; string EndPoint; while (Continue) { EndPoint = //change based in alot of options HttpResponseMessage Response = _Client.GetAsync(_Client.BaseAddress + EndPoint).Result; if (Response.IsSuccessStatusCode) { AnotherClass ResultApi = JsonConvert.DeserializeObject(Response.Content.ReadAsStringAsync().Result); if (PrecioAPI.Count == 0) { Continue = false; } } } } } [/code]
Wie der Titel sagt. So laden Sie eine XML-Datei (und jede andere Datei für diese Angelegenheit) über die Annotation von Spring Boots Value. Wenn der statische Unterordner nicht einbezogen wird, führt...
Wenn Sie UV für die Abhängigkeitsverwaltung verwenden, wird die Ausführung von UV -Add oder UV -Synchronisation einige nicht verwaltete Pakete entfernt, insbesondere in Unterprojekten, in denen...
Wenn ich pip install xyz auf einem Linux-Computer ausführe (unter Verwendung von Debian oder Ubuntu oder einer abgeleiteten Linux-Distribution), erhalte ich diese Fehlermeldung:
Wenn ich pip install xyz auf einem Linux-Computer ausführe (unter Verwendung von Debian oder Ubuntu oder einer abgeleiteten Linux-Distribution), erhalte ich diese Fehlermeldung: