Muss ich eine HttpResponseException von Request.CreateResponse () entfernen?

8

Ich habe diesen Code in einer Request-Handling-Methode eines ApiControllers:

%Vor%

Das potentielle Problem ist, dass "r" niemals entsorgt wird (zumindest in meinem Code).
Ich könnte dies in eine Verwendung verpacken, würde dann aber nicht "r" entsorgt werden, bevor die Antwort an den Client gestreamt wird?

Was ist der richtige Weg, damit umzugehen?

    
noctonura 19.12.2013, 18:25
quelle

2 Antworten

5

Alle Beispiele , die ich gesehen habe zeigen Sie, dass Sie die Antwort nicht beseitigen müssen.

%Vor%

Wenn Sie sich den Quellcode von HttpResponseException ansehen, scheint dies der Fall zu sein es füllt eine Eigenschaft ( HttpResponseMessage Response ) mit diesem Wert auf, und die Beseitigung würde wahrscheinlich dazu führen, dass die HttpResponseMessage entweder eine ObjectDisposedException verursacht oder nicht an den Client geliefert wird.

Sie werden auch bemerken, dass es im Quellcode eine SupressMessage gibt:

%Vor%

Die Instanz wird anderweitig entsorgt (dies bezieht sich nicht auf HttpResponseMesssage, IDisposable wird nicht implementiert).

  

Was ist der richtige Weg, damit umzugehen?

Ich glaube nicht, dass Änderungen an Ihrem Code erforderlich sind.

    
Erik Philips 22.12.2013, 07:10
quelle
1

Für mich bedeutet "Instanz ist woanders angesiedelt" bedeutet nicht, dass Sie nicht damit umgehen müssen.

Meine Lösung ist RegisterForDispose , also wird es:

%Vor%     
ChrisTorng 30.11.2017 05:58
quelle

Tags und Links