Если вы обнаружите какие-либо проблемы, пожалуйста, откройте проблему и предоставьте как можно больше информации, чтобы помочь нам определить вашу проблему. В качестве альтернативы, не стесняйтесь отправлять запрос на включение, если вы думаете, что можете помочь решить проблему. Если вам нужна помощь в том, как начать работу с запросами на включение, ознакомьтесь с нашими рекомендациями по содействию . Убедитесь, что вы не пропустите рекомендации по стилю , я не буду :D
ПРИМЕЧАНИЕ. Поскольку Nancy 2.0-clinteastwood является предварительной версией, вам придется устанавливать пакеты с помощью переключателя
-pre
, т.е.install-package Nancy -pre
Пожалуйста, используйте эту проблему для публикации комментариев, которые не связаны напрямую с какой-либо конкретной зарегистрированной ошибкой или запросом на включение.
Ниже приведен список определенных задач, которые необходимо выполнить после выпуска 2.0.0-clinteastwood
и которые должны быть завершены до выпуска 2.0.0-dangermouse
. Редактируйте TODO-лист и добавляйте пункты по мере их нахождения, добавляйте ссылки на пулл-реквесты, которые отправляются на их закрытие
AsyncUsageAnalyzers
установлена зависимость сборки во всех project.json
и packages.config
Правильный пример для отражения здесь — (запрос на извлечение # 2700 @jchannon*.nuspec
во всех проектах (включая Нэнси) (pull-request #2658 @jchannon)Nancy.Hosting.Aspnet\project.json
, чтобы включить в пакет web.config.transform
(pull-request #2661 @thecodejunkie)Nancy.ViewEngines.Razor\project.json
, чтобы включить app/web.config.transform
в пакет (запрос на включение # 2661 @thecodejunkie)Nancy.ViewEngines.Razor\project.json
, чтобы включить в пакет Nancy.ViewEngines.Razor.BuildProvider
(включая цели сборки).Request.Cookies
и Request.Headers.Cookie
, см. обсуждение #2628.AsyncUsageAnalyzers
как зависимость. Это должно быть безопасно удалено и не будет включено в 2.0.0-dangermouse
, поскольку оно будет помечено как зависимость сборки во всех проектах.Nancy.Hosting.Aspnet
не будет применять преобразования *.config
`, чтобы подключить хостинг, вам придется применить его самостоятельноNancy.ViewEngines.Razor
не будет применять преобразования *.config
` для подключения параметров конфигурации движков просмотра, вам придется применять их самостоятельно.Nancy.ViewEngines.Razor
отсутствуют в пакете NuGet, что вызывает проблемы с подсветкой синтаксиса в представлениях Nancy Razor.Это компилируется, но выдает время выполнения NullReferenceException
:
pipelines.BeforeRequest.AddItemToStartOfPipeline((ctx, _) =>
{
// do stuff
// Func<NancyContext, Response>, Func<NancyContext, CancellationToken, Response>
return null;
});
Это работает:
pipelines.BeforeRequest.AddItemToStartOfPipeline((ctx, _) =>
{
//do stuff
// Func<NancyContext, CancellationToken, Task<Response>>
return Task<Response>.FromResult((Response)null);
});
Мне пришлось немного побиться головой о стену, пока я не понял, что не является ни супер-пупер, ни счастливым.
@danbarua спасибо. Я открыл https://github.com/NancyFx/Nancy/issues/2665 , потому что хочу пересмотреть материал конвейера, как только у нас будет время взглянуть на загрузчик (что произойдет, как только Я перевел нас на новый формат csproj и это происходит сейчас в #2720)
БРИТЬЯ ЯКА! 😄
Этот код вызывает исключение, это ошибка?
```С#
открытый класс BaseModule: NancyModule
{
общедоступный BaseModule (строка URL): база (URL)
{
//Пользовательская логика
}
}
открытый класс A: BaseModule
{
общедоступный () : база («urlA»)
{
}
}
открытый класс B: NancyModule
{
общественный Б ()
{
}
}
Произошло исключение System.InvalidOperationException.
HResult=0x80131509
Message=Что-то пошло не так при попытке удовлетворить одну из зависимостей во время композиции, убедитесь, что вы зарегистрировали все новые зависимости в контейнере, и проверьте внутреннее исключение для получения более подробной информации.
Источник=
Трассировки стека:
в Nancy.Bootstrapper.NancyBootstrapperBase 1.SafeGetNancyEngineInstance()
at Nancy.Bootstrapper.NancyBootstrapperBase
1.GetEngine()
в Nancy.Owin.NancyMiddleware.UseNancy (параметры NancyOptions)
в Nancy.Owin.DelegateExtensions.UseNancy(Action 1 builder, NancyOptions options)
at PiggyBank.Site.Startup.<>c.<Configure>b__2_0(Action
1 x) в E:visual_studiopiggy-banksourcePiggyBank.SiteStartup.cs:строка 31
в Microsoft.AspNetCore.Builder.OwinExtensions.UseOwin (построитель IApplicationBuilder, конвейер Action`1)
в PiggyBank.Site.Startup.Configure (приложение IApplicationBuilder, IHostingEnvironment env, ILoggerFactory loggerFactory) в E:visual_studiopiggy-banksourcePiggyBank.SiteStartup.cs:строка 31
Внутреннее исключение 1:
TinyIoCResolutionException: невозможно разрешить тип: Nancy.NancyEngine
Внутреннее исключение 2:
TinyIoCResolutionException: невозможно разрешить тип: Nancy.Routing.DefaultRequestDispatcher
Внутреннее исключение 3:
TinyIoCResolutionException: невозможно разрешить тип: Nancy.Routing.DefaultRouteResolver
Внутреннее исключение 4:
TinyIoCResolutionException: невозможно разрешить тип: Nancy.Routing.RouteCache
Внутреннее исключение 5:
TinyIoCResolutionException: невозможно разрешить тип: BaseModule
Внутреннее исключение 6:
TinyIoCResolutionException: невозможно разрешить тип: System.String
Внутреннее исключение 7:
TinyIoCResolutionException: невозможно разрешить тип: System.Char[]
Внутреннее исключение 8:
ArgumentNullException: значение не может быть нулевым.
```
Это связано с тем, что базовый модуль не имеет конструктора, который может удовлетворить контейнер IoC. Он не знает, как обращаться с string
. Если BaseModule
не должен вызываться сам по себе, я предлагаю вам сделать его abstract
...
Старый:
Get["post/{id}"] = Get["old/post/{id}"] = p =>{};
Новый (2.0):
?
Get("post/{id}", MyMethod);
Получить("старый/пост/{id}", MyMethod);
Get("post/{id}", MyMethod);
Получить("старый/пост/{id}", MyMethod);
Это использование добавляет некоторую косвенность. Мне лично это не нравится. Хотя это не проблема.
Может быть, можно иметь некоторые перегрузки методов для свободного выражения? пример:
Get("post/{id}")
.Get("old/post/{id}")
.Post("whatever/{id}", p => { return HttpStatusCode.Ok });
Альтернативное выражение
Get("post/{id}")
.Get("old/post/{id}")
.Post("whatever/{id}")
.Do(p => { return HttpStatusCode.Ok });
Я могу заняться пиаром, если это желательно
Самый полезный комментарий
Это связано с тем, что базовый модуль не имеет конструктора, который может удовлетворить контейнер IoC. Он не знает, как обращаться с
string
. ЕслиBaseModule
не должен вызываться сам по себе, я предлагаю вам сделать егоabstract
...