Что делать в веб-интерфейсе Dynamics365, если свойство объекта не существует?
Предположим, что у нас есть сущность Account в Dynamics 365, атрибут account и c5 number и name.
Теперь я хочу создать новую учетную запись через веб-API Dynamics 365. Я создаю объект учетной записи с номером c5, именем и добавляю дополнительный атрибут фамилия. Когда я публикую этот объект учетной записи в Web API, я получу сообщение об ошибке:
"code":"","message":"The property 'lastname' does not exist on type 'Microsoft.Dynamics.CRM.account'. Make sure to only use property names that are defined by the type.","innererror":{
"message":"The property 'lastname' does not exist on type 'Microsoft.Dynamics.CRM.account'. Make sure to only use property names that are defined by the ...
Я действительно не понимаю, почему веб-API Dynamics 365 просто не может игнорировать свойства, которые он не может использовать?
В этом конкретном случае это означает, что если мы удалим свойство name в сущности учетной записи, есть вероятность того, что все наши системы, которые общаются с Web API, потерпят крах.
Как я могу обойти эту проблему? Есть ли способ заставить динамический веб-интерфейс 365 игнорировать некоторые свойства?
1 ответ
Web Api не только не игнорирует неиспользуемые значения, но даже при обновлении обновляет все отправленные вами значения, даже если они равны. Так как одним шагом может быть - игнорировать это значение, установив его как NonSerialized, оно будет исключено. Кроме того, вы можете определить наименование для членов класса, так что вам не нужно беспокоиться о том, как они названы в коде.
`[Serializable]
public class Account {
[NonSerialized]
public string lastname;
[JsonProperty("firstname")]
public string firstName;
[JsonProperty("index")]
public int c5;
}