-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSampleSetting.cs
More file actions
28 lines (23 loc) · 968 Bytes
/
Copy pathSampleSetting.cs
File metadata and controls
28 lines (23 loc) · 968 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System.ComponentModel.DataAnnotations;
using System.Diagnostics.CodeAnalysis;
using System.Text.Json.Serialization;
using Configuration.Writable;
using Microsoft.Extensions.Options;
namespace Example.WebApi;
[OptionsModel(Id = "SampleSetting", Version = 1)]
public partial class SampleSetting
{
[Required]
[MinLength(3)]
// MinLength attribute causes IL2026 warning in NativeAOT build, so suppress it here.
[UnconditionalSuppressMessage("Trimming", "IL2026")]
public string? Name { get; set; }
public DateTime LastUpdatedAt { get; set; } = DateTime.Now;
}
// Source generation context for System.Text.Json serialization
[JsonSourceGenerationOptions(WriteIndented = true)]
[JsonSerializable(typeof(SampleSetting))]
public partial class SampleSettingSerializerContext : JsonSerializerContext;
// Source generation for options validation
[OptionsValidator]
public partial class SampleSettingValidator : IValidateOptions<SampleSetting>;