下面的代碼是緩慢的,因爲它在每次運行時產生的動態序列化類:.NET:JsonMediaTypeFormatter線程安全嗎?
var formatter = new JsonMediaTypeFormatter();
... // configure formatter
MyDocument value = new MyDocument();
HttpContent content = new ObjectContent<MyDocument>(value, formatter);
await httpClient.PutAsync(url, content);
理想我應該緩存formatter
值,但是我使用的線程和documentation說實例成員不是線程安全的。這聽起來像一個設計缺陷或不精確的文檔,因爲媒體類型格式化程序can be used as ASP.NET content parsers(顯然是線程感知的)。儘管如此,它並不排除ASP.NET使用鎖來避免併發訪問的可能性。
你是否知道JsonMediaTypeFormatter
實際上是線程安全的任何好的消息來源或指示?
perf的問題不在構造函數上。在它第一次進行序列化時,它會創建產生大量動態代碼的數據協定序列化程序。如果我們不重用實例,它會每次都這樣做。 – fernacolo