2016-04-07 11 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.

Смежные вопросы