Я разрабатываю сервис для подключения к Microsoft Business Central API.Они используют протокол OData при использовании данных.Я создал модель для их объекта Customer
public class Customer
{
[JsonProperty(PropertyName = "@odata.etag")]
public string etag { get; set; }
public string id { get; }
public string number { get; set; }
public string displayName { get; set; }
public string type { get; set; }
}
Проблема состоит в том, что при сериализации объекта с помощью Newtonsoft в JSON:
var request = new HttpRequestMessage(HttpMethod.Post, "customers")
{
Content = new StringContent(JsonConvert.SerializeObject(customer), Encoding.UTF8, "application/json")
};
request.Headers.Authorization = new AuthenticationHeaderValue("Basic", authValue);
HttpResponseMessage result = client.SendAsync(request).Result;
Это также сериализация etag и id.Этот тег используется для обновления и ссылки на этот конкретный объект, в то время как идентификатор является GUID для их системы.
Эта модель используется для вызовов GET, POST и PUT, поэтому я не хочу удалять или создаватьдругая модель специально для etag и id.Можно ли как-то игнорировать эти два свойства во время операций POST?
Я попытался инициализировать поля пустой строкой / нулем, что, по-видимому, нормально для etags, однако id не будет работать по очевидным причинам.