2016-04-07 64 views
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": { } 
}, 
+0

您是否嘗試過使用'dnx46'而不是'dnx451'? – Pawel

+0

'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的最新清單? –

+0

我想你可以試試'net46' - 這個區域在rc1之後已經看到很多流浪。我希望有一些文件解釋這個問題,一旦這個問題終於解決了。 – Pawel

回答

1

嘗試使用dnx46而不是dnx451