<p>Comentários Nancy 2.0.0-clinteastwood</p>

Criado em 22 dez. 2016  ·  8Comentários  ·  Fonte: NancyFx/Nancy

Se você encontrar algum problema, abra um problema e forneça o máximo de informações possível para nos ajudar a identificar seu problema. Como alternativa, sinta-se à vontade para enviar um pull-request se achar que pode ajudar a resolver o problema. Se você precisar de uma orientação sobre como começar com pull-requests, dê uma olhada em nossas diretrizes de contribuição . Certifique-se de não perder as diretrizes de estilo , eu não vou :D

NOTA: Como o Nancy 2.0-clinteastwood é um pré-lançamento, você terá que instalar pacotes usando a alternância -pre , ou seja, install-package Nancy -pre

Por favor, use este problema para postar comentários que não estejam diretamente relacionados a nenhum bug específico relatado ou pull-request.

FAÇAM

A seguir está uma lista de tarefas identificadas que precisam ser executadas após o lançamento do 2.0.0-clinteastwood e devem ser concluídas antes do lançamento do 2.0.0-dangermouse . Edite a lista TODO e adicione itens à medida que forem encontrados, adicione links para pull-requests que são enviados para fechá-los

  • [x] Certifique-se de que AsyncUsageAnalyzers esteja configurado para uma dependência de compilação em todos os project.json e packages.config Exemplo correto para espelhar aqui - (requisição de pull #2700 @jchannon
  • [x] Remova todos os arquivos *.nuspec antigos em todos os projetos (incluindo Nancy) (pull-request #2658 @jchannon)
  • [x] Atualize Nancy.Hosting.Aspnet\project.json para incluir web.config.transform no pacote (requisição pull #2661 @thecodejunkie)
  • [x] Atualize Nancy.ViewEngines.Razor\project.json para incluir app/web.config.transform no pacote (requisição pull #2661 @thecodejunkie)
  • [ ] Atualize Nancy.ViewEngines.Razor\project.json para incluir Nancy.ViewEngines.Razor.BuildProvider (incluindo destinos de compilação) no pacote

Mudanças planejadas

  • [ ] Remova um de Request.Cookies e Request.Headers.Cookie veja #2628 para discussões
  • [ ] Melhore a sintaxe e os recursos do gancho Antes e Depois #2665
  • [ ] Veja "Potencial problema de desempenho com Nancy.Routing.Route.Invoke #2623"
  • [ ] Adicionar suporte de configuração para negociação de conteúdo. Veja #2671 para discussão sobre resolução de extensão automática
  • [ ] Atualize a infraestrutura de teste para oferecer suporte ao netstandard, consulte o problema nº 2612 e o pull-request nº 2628
  • [ ] Converta os subsistemas restantes para assíncrono, consulte o pull-request #2577
  • [ ] Remova as últimas partes restantes de StaticConfiguration

Limitações conhecidas

  • Alguns pacotes podem instalar AsyncUsageAnalyzers como uma dependência. Isso deve ser seguro para ser removido e não será incluído em 2.0.0-dangermouse , pois será marcado como uma dependência de compilação em todos os projetos
  • O pacote Nancy.Hosting.Aspnet não aplicará *.config transformações`, para conectar a hospedagem, você terá que aplicá-lo você mesmo
  • O pacote Nancy.ViewEngines.Razor não aplicará *.config transformações` para conectar as opções de configuração dos mecanismos de visualização, você terá que aplicá-lo você mesmo
  • Os provedores de compilação para Nancy.ViewEngines.Razor estão ausentes do pacote NuGet, causando problemas com realce de sintaxe nas exibições do Nancy Razor
Improvement Epic

Comentários muito úteis

É porque o módulo base não possui um construtor que o contêiner IoC possa satisfazer. Ele não sabe como lidar com string . Se o BaseModule não deve ser chamado sozinho, sugiro que você o faça abstract ...

Todos 8 comentários

Isso compila, mas lança um tempo de execução NullReferenceException :

pipelines.BeforeRequest.AddItemToStartOfPipeline((ctx, _) =>
{
    // do stuff
    // Func<NancyContext, Response>, Func<NancyContext, CancellationToken, Response>
    return null;
});

Isso funciona:

pipelines.BeforeRequest.AddItemToStartOfPipeline((ctx, _) =>
{
    //do stuff
    // Func<NancyContext, CancellationToken, Task<Response>>
    return Task<Response>.FromResult((Response)null);
});

Demorou um pouco para bater minha cabeça contra a parede até que eu descobri o que não é nem super-duper nem feliz.

@danbarua obrigado. Abri https://github.com/NancyFx/Nancy/issues/2665 porque quero fazer uma revisão no pipeline assim que tivermos tempo de analisar o bootstrapper (o que acontecerá assim que Mudei-nos para o novo formato csproj e isso está acontecendo agora em #2720)

BARBA DE IAQUE! 😄

Este código lança uma exceção, isso é bug?

```C#

classe pública BaseModule : NancyModule
{
public BaseModule(string url): base(url)
{
//Lógica personalizada
}
}

classe pública A: BaseModule
{
public A() : base("urlA")
{

}

}

classe pública B: NancyModule
{
público B()
{

}

}


Ocorreu System.InvalidOperationException
HResult=0x80131509
Message=Algo deu errado ao tentar satisfazer uma das dependências durante a composição, certifique-se de ter registrado todas as novas dependências no contêiner e inspecione a exceção interna para obter mais detalhes.
Fonte=
StackTrace:
em Nancy.Bootstrapper.NancyBootstrapperBase 1.SafeGetNancyEngineInstance() at Nancy.Bootstrapper.NancyBootstrapperBase 1.GetEngine()
em Nancy.Owin.NancyMiddleware.UseNancy(opções NancyOptions)
em Nancy.Owin.DelegateExtensions.UseNancy(Ação 1 builder, NancyOptions options) at PiggyBank.Site.Startup.<>c.<Configure>b__2_0(Action 1 x) em E:visual_studiopiggy-banksourcePiggyBank.SiteStartup.cs:line 31
em Microsoft.AspNetCore.Builder.OwinExtensions.UseOwin (construtor IApplicationBuilder, pipeline Action`1)
em PiggyBank.Site.Startup.Configure(aplicativo IApplicationBuilder, env IHostingEnvironment, ILoggerFactory loggerFactory) em E:visual_studiopiggy-banksourcePiggyBank.SiteStartup.cs:line 31

Exceção interna 1:
TinyIoCResolutionException: não é possível resolver o tipo: Nancy.NancyEngine

Exceção Interna 2:
TinyIoCResolutionException: não é possível resolver o tipo: Nancy.Routing.DefaultRequestDispatcher

Exceção Interna 3:
TinyIoCResolutionException: Não é possível resolver o tipo: Nancy.Routing.DefaultRouteResolver

Exceção Interna 4:
TinyIoCResolutionException: Não é possível resolver o tipo: Nancy.Routing.RouteCache

Exceção Interna 5:
TinyIoCResolutionException: Não é possível resolver o tipo: BaseModule

Exceção Interna 6:
TinyIoCResolutionException: não é possível resolver o tipo: System.String

Exceção Interna 7:
TinyIoCResolutionException: não é possível resolver o tipo: System.Char[]

Exceção Interna 8:
ArgumentNullException: O valor não pode ser nulo.

```

É porque o módulo base não possui um construtor que o contêiner IoC possa satisfazer. Ele não sabe como lidar com string . Se o BaseModule não deve ser chamado sozinho, sugiro que você o faça abstract ...

Velho:

Get["post/{id}"] = Get["old/post/{id}"] = p =>{};

Novo(2.0):

?

Get("post/{id}", MeuMétodo);
Get("antigo/post/{id}", MeuMétodo);

Get("post/{id}", MeuMétodo);
Get("antigo/post/{id}", MeuMétodo);

Esse uso adiciona alguma indireção. Eu pessoalmente não gosto disso. Não é um problema embora.

Talvez seja possível ter algumas sobrecargas de método para expressão fluente? exemplo:

Get("post/{id}")
.Get("old/post/{id}")
.Post("whatever/{id}", p => { return HttpStatusCode.Ok });

Uma expressão alternativa

Get("post/{id}")
.Get("old/post/{id}")
.Post("whatever/{id}")
.Do(p => { return HttpStatusCode.Ok });

Eu posso dar uma facada no PR se isso for desejável

Esta página foi útil?
0 / 5 - 0 avaliações