Можно ли установить новое значение OptionSetValue в Dynamics CRM, используя только имя / метку параметра?
Например, у меня есть следующий OptionSet:
1 : Male
2 : Female
Если у меня нет значения int, можно ли вместо этого использовать метку string? Такой как...
my_optionSet = new OptionSetValue(Male)





В вашем случае я бы использовал Dictionary<string, int> в качестве таблицы сопоставления, тогда вы можете передать свое строковое значение, а затем установить параметр int в классе OptionSetValue.
Dictionary<string, int> mapperT = new Dictionary<string, int>();
mapperT.Add("Male", 1);
mapperT.Add("Female", 2);
my_optionSet = new OptionSetValue(mapperT["Male"]);
Для этого мы используем enum.
public enum Gender
{
Male = 864630000,
Female = 864630001,
};
my_optionSet = new OptionSetValue((int)Gender.Male);
Это будут предварительно определенные пары ключ: значение, которые никогда не меняются между средами. Когда вы думаете о том, чтобы избежать развертывания кода и развертывания только решения, адаптированного к схеме, всякий раз, когда в этот атрибут добавляются новые параметры, вы можете инвестировать в Получить метаданные OptionSet.
Отлично, спасибо! Это по-прежнему оставляет нерешенным вопрос о если я не знаю значение int ..., но я думаю, что могу обойти это.
@ArunVinoth, не знаю, как я даже не подумал об использовании сервиса! Благодарность
@Klicker :) это случается со всеми нами
Это, безусловно, лучшее решение