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;

Если вам нужно привести к типу перечисления из целого числа, посмотрите этот связанный вопрос.

Другие вопросы по тегам