Jak sprawdzić istnienie pola w żądaniu?

0

Cześć
Prosta sprawa
Mogą być trzy stany
True, false, unknown

True jeśli wartość jest
False jeśli wartości nie ma
Unknown gdy nie ma klucza

Gdy desrializuje się obiekt to gdy nie ma klucza to przypisywana jest wartość domyślna (null)
A ja bym chciał aby w modelu było coś na kształt optional lub pola isset

Czy da się to zrobić
Ewentualnie jak

Z góry dziękuję za odpowiedź

1

Żądaniu ??? REST ? Innym ?
Jakie serializery tam pracują ?

Mało dokladne to pytanie

0

rozwiązanie znalazłem chwile po napisaniu pytania

//kontroler
    [ModelBinder<CustomModelBinder>()] CustomModel customModel
)
public sealed class CustomModel : IModelBinder
{
 public async Task BindModelAsync(ModelBindingContext bindingContext)
 {
   var streamReader = new StreamReader(bindingContext.HttpContext.Request.Body);
   var json = await streamReader.ReadToEndAsync();

   var jsonObjectItems = System.Text.Json.Nodes.JsonNode.Parse(json).AsObject();
   var items = jsonObjectItems.Select(x => x.Key); // tu w [items] są wszystkie "klucze" jakie przyszły
  /* 
    czyli jeśli w req jest możliwość wysłania
{
"A":"a",
"B":"b",
"C":"c"
} lub dwolnej kombinacji
{
"B":"b",
"C":"c"
}
czy
{
"A":"a",
"C":"c"
}
a z jakichś powodów potrzebna jest wiedza czy req miał w sobie takie czy inne pole - to można w taki sposób
   */


 }   
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1