1
經典.net CallContext
被替換爲AsyncLocal
.NET 4.6 ...並在ASP.NET Core中可用。我注意到SimpleInjector is using it的最新版本。如何訪問AsyncLocal
但是,我無法在我的dnx451
ASP.NET Core項目中使用它。
我可以做出以下兩個聲明:
using System.Threading;
using System.Threading.Tasks;
...
static ThreadLocal<string> foo = new ThreadLocal<string>();
static AsyncLocal<string> tenant = new AsyncLocal<string>();
第一個是罰款,但第二個沒有正確定義,如圖此消息:
AspAsyncLocal.DNX 4.5.1 - Not Available
AspAsyncLocal.DNX Core 5.0 - Available
我是什麼失蹤?我的project.json有以下依賴關係:
"dependencies": {
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
"Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.FileProviderExtensions": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final",
},
"frameworks": {
"dnx451": {
"dependencies": {
"System.Threading": "4.0.11-beta-23516"
}
},
"dnxcore50": { }
},
您是否嘗試過使用'dnx46'而不是'dnx451'? – Pawel
'dnx46'?從那時起,這是一個選擇? VS模板默認爲'dnx451',[可用TFM列表不包含'dnx46'](http://docs.nuget.org/create/targetframeworks)。無可否認,我剛剛看到[.net平臺標準提及'dnx46'](https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md),但它說它已被棄用...並沒有說明替換是什麼。也許我需要更新VS項目模板?工具/擴展名列表沒有更新。我在哪裏可以獲得適當TFM的最新清單? –
我想你可以試試'net46' - 這個區域在rc1之後已經看到很多流浪。我希望有一些文件解釋這個問題,一旦這個問題終於解決了。 – Pawel