Где перечисления должны жить в структуре проекта MVC? - PullRequest
11 голосов
/ 09 августа 2011

Я использую .NET MVC 3 Code-First. В моем домене есть объект с именем Question, у этого объекта есть свойство Score, равное Byte, и я хочу заменить это свойство на Enum и назвать это Enum на Score, где я могу установить значения от 0 до 10.

Где Enums должен жить в этой структуре? В папке с именем Enums в моей папке Model ?

Обновление:

Это мой проект Структура в папке Models :

enter image description here

Ответы [ 4 ]

7 голосов
/ 09 августа 2011

Что вас действительно должно беспокоить, так это пространство имен ваших перечислений.

Независимо от того, где ваш файл класса существует в решении, ваш код будет полагаться на пространства имен.Я думаю, что вы, вероятно, захотите пространство имен вроде: Questiona2011.Enums.Не будет хорошей идеей связывать классы Enum с пространством имен Models - не то, чтобы это не могло быть сделано, но иногда представления могут взаимодействовать с вашими перечислениями.Поэтому я склонен отдавать своим перечислениям отдельное пространство имен.

Вам не обязательно создавать папку для файла класса ... вы можете хранить его в корневом каталоге, если хотите - реальный фактор - это пространство имен.

Итак, создайте класс с пространством имен следующим образом:

using System;

namespace Questiona2011.Enums
{
    public enum Score
    {
        One = 1,
        Two = 2,
        .
        .
        .
        Ten = 10
    }
}

Сказав это, я бы просто перетащил файл класса в папку Models.:)

2 голосов
/ 09 августа 2011

Похоже, у вас есть объект значения.Я бы поставил его там же, где вы помещаете другие объекты-значения в свой домен, что действительно зависит от структуры вашей папки.Определенно в папке Model, но если вы подразделяете папку модели, это зависит от того, как вы это делаете.У вас есть подпапка вопросов и ответов?Может быть, это идет рядом с вопросами.Или у вас есть подпапка Value Objects?Может быть, там.

2 голосов
/ 09 августа 2011

Если нет лучшего места для их размещения, я помещаю их в папку Model.

Если у вас много Enums, возможно, вы захотите сделать идею папки, которую вы делали.Я не думаю, что назвал бы это «перечислениями», хотя это не очень наглядно.

1 голос
/ 10 августа 2011

Если ваш проект становится достаточно большим, чтобы беспокоиться об организации, вам следует подумать о создании нового проекта, который является просто DLL для типов ваших приложений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...