Мне интересно, как вы подходите к этой проблемеEnum struct? A Объект Value, который ведет себя как Enum
У меня есть два налога, которые могут применяться к моим продуктам. Я специально хочу избежать сохранения Taxrates в базе данных, но все же могу изменить их в центральном месте (например, Taxrate с 20% до 19% и т. Д.).
поэтому я решил, что было бы здорово, чтобы они были просто скомпилированы в мое приложение (оно внутреннее). Проблема в том, что я хочу не только знать тариф, но и название налоговой ставки.
Я мог бы пойти с Enum, который отображает значение. Но тогда мне придется создать какой-то метод, который извлекает имя этого налога для английского значения enum (я пишу свой код на английском языке, приложение находится на немецком языке).
Я думал об использовании только жестко закодированные объекты, чтобы отразить это,
public interface Taxrate
{
string Name { get; }
decimal Rate { get; }
}
public class NormalTaxRate : Taxrate
{
public string Name
{ get { return "Regelsteuersatz"; } }
public decimal Rate
{ get { return 20m; } }
}
Но тогда я должен был бы создать какой-то список, который содержит два экземпляра этих двух объектов. Выполнение этого статического действия может работать, но все же мне нужно будет сохранить какой-то список. Также мне нужно найти способ сопоставить свой объект домена POCO с этим, потому что я сомневаюсь, что NHibernate может создать экземпляр нужного объекта в зависимости от значения в поле.
Это действительно не так, и я думаю, что здесь что-то не хватает. Надеюсь, у кого-то есть лучшее решение, я не могу думать об этом.
поздравления, Daniel
Ps: также, пожалуйста, повторно задать этот вопрос, если вы нашли что-то подходящее, я не могу думать о более значимых тегов прямо сейчас.
Как уродливо, как выглядит, Скитер прав ... это не плохое решение: P Я бы также переопределил процесс преобразования по умолчанию, чтобы вы могли конвертировать из десятичного числа в один из этих экземпляров. – 2008-11-28 11:29:35
BTW: Я только думаю, что это уродливо, потому что оно смешалось вместе. – 2008-11-28 11:30:19