Startup.vb 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. ' Copyright (c) .NET Foundation. All rights reserved.
  2. ' Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
  3. Imports System.Data.Common
  4. Imports System.Text.Encodings.Web
  5. Imports System.Text.Unicode
  6. Imports Microsoft.AspNetCore.Builder
  7. Imports Microsoft.AspNetCore.Hosting
  8. Imports Microsoft.Extensions.Configuration
  9. Imports Microsoft.Extensions.DependencyInjection
  10. Imports MySql.Data.MySqlClient
  11. Imports Npgsql
  12. Public Class Startup
  13. Private Configuration As IConfiguration
  14. Public Sub New(configuration As IConfiguration)
  15. Me.Configuration = configuration
  16. End Sub
  17. Public Sub ConfigureServices(ByVal services As IServiceCollection)
  18. services.Configure(Of AppSettings)(Configuration)
  19. services.AddSingleton(Of ConcurrentRandom)()
  20. Dim appSettings = Configuration.[Get](Of AppSettings)()
  21. services.AddSingleton(appSettings)
  22. If appSettings.Database = DatabaseServer.PostgreSql Then
  23. services.AddSingleton(Of DbProviderFactory)(NpgsqlFactory.Instance)
  24. services.AddSingleton(Of RawDb)
  25. ElseIf appSettings.Database = DatabaseServer.MySql Then
  26. services.AddSingleton(Of DbProviderFactory)(MySqlClientFactory.Instance)
  27. services.AddSingleton(Of RawDb)
  28. End If
  29. Dim settings = New TextEncoderSettings(UnicodeRanges.BasicLatin, UnicodeRanges.Katakana, UnicodeRanges.Hiragana)
  30. settings.AllowCharacter("—"c)
  31. services.AddWebEncoders(
  32. Sub(options)
  33. options.TextEncoderSettings = settings
  34. End Sub)
  35. End Sub
  36. Public Sub Configure(ByVal app As IApplicationBuilder)
  37. app.UsePlainText()
  38. app.UseJson()
  39. app.UseUtf8Json()
  40. app.UseFortunesRaw()
  41. app.UseSingleQueryRaw()
  42. app.UseMultipleQueriesRaw()
  43. app.UseMultipleUpdatesRaw()
  44. End Sub
  45. End Class