全部examples我已經看到表明你不必處置響應。
public Product GetProduct(int id)
{
Product item = repository.Get(id);
if (item == null)
{
var resp = new HttpResponseMessage(HttpStatusCode.NotFound)
{
Content = new StringContent(string.Format("No product with ID = {0}", id)),
ReasonPhrase = "Product ID Not Found"
}
throw new HttpResponseException(resp);
}
return item;
}
查看源代碼HttpResponseException,看來,它填充一個屬性(HttpResponseMessage Response
)與價值和它的配置可能會導致HttpResponseMessage要麼引起的ObjectDisposedException或無法傳遞到客戶端。
您還會注意到,在源代碼中有一個SupressMessage:
[SuppressMessage("Microsoft.Reliability",
"CA2000:Dispose objects before losing scope",
Justification = "Instance is disposed elsewhere")]
實例配置的其他地方(這是不是指HttpResponseMesssage,它不實現IDisposable)。
處理這個問題的正確方法是什麼?
我不相信您的代碼需要任何更改。
有趣的是,他們將組織他們班這種方式。我找不到任何有用的文檔,但你可以使用[這個構造函數](http://msdn.microsoft.com/en-us/library/hh835324(v = vs.118).aspx)一個狀態代碼呢? 「 –
」不會過早處理?「準確地說,爲時過早? – spender
@spender,我認爲OP會聲明它會在響應流式傳輸給客戶端之前處理掉。 –