BalanceType в Dynamics GP Web Services, как использовать?
Я пытаюсь создать клиента в веб-службах GP, и я наткнулся на свойство BalanceType класса Customer, и я не знаю, как установить его значение. Я ожидал, что это будет целое число со значением 0 или 1, однако я получаю сообщение "неявно преобразует тип int в [...].BalanceType".
Вот определение для этого. Я считаю, что проблема заключается в моем отсутствии опыта работы с C# и.NET в целом и с типами перечисления в частности.
public enum BalanceType : int {
[System.Runtime.Serialization.EnumMemberAttribute(Value="Open Item")]
OpenItem = 0,
[System.Runtime.Serialization.EnumMemberAttribute(Value="Balance Forward")]
BalanceForward = 1,
}
В моем коде у меня есть класс со свойством
public int balanceType
Позже в методе у меня есть следующее, где _customer - это переданный мне объект параметра, а customerObj - это объект класса веб-служб.
customerObj.BalanceType = _customer.balanceType;
Ваше время и умственные способности очень ценятся.
1 ответ
Тип перечисления предоставляет удобный способ определения именованных констант со значением. В этом случае OpenItem = 0 и BalanceForward = 1.
Вы устанавливаете Enum так:
customerObj.BalanceType = BalanceType.OpenItem;
Я бы изменил свойство в вашем коде также на BalanceType следующим образом:
public BalanceType balanceType;
Таким образом, вы избегаете необходимости приведения между целым числом и вашим типом перечисления. Вы сможете легко установить его:
customerObj.BalanceType = balanceType;
Если вам нужно привести к типу перечисления из целого числа, посмотрите этот связанный вопрос.