.NET 4.6 introduces the AsyncLocal<T>
class for flowing ambient data along the asynchronous flow of control. I've previously used CallContext.LogicalGet/SetData
for this purpose, and I'm wondering if and in what ways the two are semantically different (beyond the obvious API differences like strong typing and lack of reliance on string keys).