using System;
using System.Text.Json;
using System.Text.Json.Serialization;
var json = "{\"id\":1,\"number\":42,\"bagGUID\":null}";
var data = JsonSerializer.Deserialize<Barcode>(json);
Console.WriteLine(data!.ToString()); // выведет "Barcode { Id = 1, Number = 42, BagGuid = }"
record Barcode
{
[JsonPropertyName("id")]
public int Id { get; init; }
[JsonPropertyName("number")]
public int Number { get; init; }
[JsonPropertyName("bagGUID")]
public Guid? BagGuid { get; init; }
}
await _context.A.Include(a => a.B)
.ThenInclude(a => a.C)
.Where(a => a.Id == 1)
.Select(a => new ADto
{
Id = a.Id,
C = a.C.Select(c => new CDto { Id = c.Id, Name = c.Name}).ToList(),
B = new BDto { Id = a.B.Id, Name = a.B.Name }
})
.SingleAsync();
using
- как бы Include, но не совсем.namespace
- как раз то, что using добавляет в текущий файл (иначе бы пришлось полные имена писать типа Microsoft.Extensions.Hosting.IHostBuilder
). Думаю, можно считать его (namespace) аналогом папкиpublic class Program
- объявление публичного класса (только из-за того, что в C# пока нельзя сразу начать писать код, не объявив метод Main, а метод нельзя объявить без класса - в C#9 можно будет, но это не важно)public static void Main(string[] args)
- Аналог из сишного void main(int argc, char* argv[])
Докер-конейнер находится в кубернетесе на удалённой машине.
RUN dotnet tool install --global dotnet-trace
ENV PATH $PATH:/root/.dotnet/tools
dotnet-trace collect --process-id $(pidof dotnet) --providers Microsoft-DotNETCore-SampleProfiler