services.ConfigureApplicationCookie(options =>
{
options.Events.OnRedirectToLogin = context =>
{
context.Response.StatusCode = 401;
return Task.CompletedTask;
};
});
services.AddAuthentication(options => options.DefaultScheme = "Cookies").AddCookie("Cookies", "Cookies", options => {
options.Events.OnRedirectToAccessDenied = context =>
{
context.Response.StatusCode = 403;
return Task.CompletedTask;
}
}
Кто нибудь знает как .NET ведет себя в плане потребления ресурсов?
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netcoreapp3.0;net5.0</TargetFrameworks>
</PropertyGroup>
</Project>
private static Array Combine(params object[] arrays)
{
if (arrays.Length == 0) return null;
if (arrays.Length == 1) return (Array)arrays[0];
var totalLength = ((Array)arrays[0]).Length;
var elemType = arrays[0].GetType().GetElementType();
for (int i = 1; i < arrays.Length; i++)
{
var nextElemType = arrays[i].GetType().GetElementType();
if (nextElemType != elemType) return null;
totalLength += ((Array)arrays[i]).Length;
}
Array resultArray = Array.CreateInstance(elemType, totalLength);
var offset = 0;
foreach (Array array in arrays)
{
Array.Copy(array, 0, resultArray, offset, array.Length);
offset += array.Length;
}
return resultArray;
}
ns.Read(headerBuffer); // прочитали заголовок
class A { public string GetInt() => "10"; }
class B : A {public new string GetInt() => "20";}
B item= new B();
item.GetInt(); // вернет 20
A item2 = (A)item;
item.GetInt(); // вернет 10
class A { public virtual string GetInt() => "10"; }
class B : A {public override string GetInt() => "20";}
B item= new B();
item.GetInt(); // вернет 20
A item2 = (A)item;
item.GetInt(); // вернет 20
Вот у нас есть две огромные строки каждая условно по 1 гигабайту. Вот мы их конкатенируем с помощью String.Concat получим третью строку длинной 2 гигабайта. Сделаем тоже самое с помощью StringBuilder. Что мы выиграем?
Есть ли смысл изучать его ради маленьких в пару страниц сайтов (но всё же серверным функционалом, не просто "отдать html по ссылке")?
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddHostedService<THostedService> (
this Microsoft.Extensions.DependencyInjection.IServiceCollection services,
Func<IServiceProvider,THostedService> implementationFactory
) where THostedService : class, Microsoft.Extensions.Hosting.IHostedService;
services.AddHostedService<Service>(sp => new Service(new Reader("1", "2")));
services.AddHostedService<Service>(sp => new Service(new Reader("3", "4")));
services.AddHostedService<Service>(sp => new Service(new Reader("5", "6")));