от
Моя дилемма-это, в основном, как делить перечисление между двумя приложениями. Пользователям загружать документы с помощью интерфейсного приложения, которое находится в интернете. Это приложение вызывает веб-службу из приложения и передает документ на него. Бэкэнд-приложение сохраняет документ и вставляет строку в таблице документа. Тип документа (7 возможных типов документов: счет-фактуру, договор и т. д.) передается в качестве параметра методу UploadDocument веб-службы. Вопрос в том, что тип (и возможных значений) этого параметра? Так как вы должны записать эти значения в обоих приложениях, я думаю, что это ОК, чтобы использовать описательные строки (накладной, договору, наряду, SignedWorkOrder). Это может быть лучшим подходом для создания перечисления DocumentTypes в первой заявке, и воспроизвести его также во втором приложении, а затем пройти соответствующее целое значение к веб-сервису между ними?

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

9 Ответы

0 голосов
от
Моя дилемма-это, в основном, как делить перечисление между двумя приложениями. Пользователям загружать документы с помощью интерфейсного приложения, которое находится в интернете. Это приложение вызывает веб-службу из приложения и передает документ на него. Бэкэнд-приложение сохраняет документ и вставляет строку в таблице документа. Тип документа (7 возможных типов документов: счет-фактуру, договор и т. д.) передается в качестве параметра методу UploadDocument веб-службы. Вопрос в том, что тип (и возможных значений) этого параметра? Так как вы должны записать эти значения в обоих приложениях, я думаю, что это ОК, чтобы использовать описательные строки (накладной, договору, наряду, SignedWorkOrder). Это может быть лучшим подходом для создания перечисления DocumentTypes в первой заявке, и воспроизвести его также во втором приложении, а затем пройти соответствующее целое значение к веб-сервису между ними?
0 голосов
от
Я могу говорить только о .Net, но если у вас есть веб-сервиса ASP.net вы должны быть в состоянии добавить перечисление непосредственно к нему. Когда вы используете "добавить веб-ссылку" в вашем клиентском приложении, результирующий класс должен включать, что перечисление Но это с верхней части моей головы, я уверен, что я сделал это в прошлом, но я не могу сказать точно.
0 голосов
от
Я предлагаю против вынесения целое число между ними, просто в целях удобства чтения и отладки. Скажем, вы идете через ваши журналы, и вы увидите кучу 500 ошибки на узел documenttype=4. Теперь ты должен пойти посмотреть, что узел documenttype составляет 4. Или если одно из приложений относится номер, который не существует в других, возможно, из-за несоответствия версий. Это немного больше кода, и это втирает в статической типизации часть мозга немного сыро, но в протоколов поверх HTTP с полученной мудрости в сторону с читаемыми строками по непрозрачной перечислений.
0 голосов
от
Я бы все-таки использовать перечисление внутренне, но ожидать потребителей передать мне только название, а не само числовое значение. просто какой-то глупый пример, чтобы проиллюстрировать:
public enum DocumentType
{
  Invoice,
  Contract,
  WorkOrder,
  SignedWorkOrder
}

[WebMethod]
public void UploadDocument(string type, byte[] data)
{
  DocumentType docType = (DocumentType)Enum.Parse(typeof(DocumentType), type);
}
0 голосов
от
В .Чистая, значения перечислений (по умолчанию) сериализуется в XML с именем. Для случаев, когда вы можете иметь несколько значений (флаги), то это ставит пробел между значениями. Это работает, потому что перечисление не содержать пробелов, так что вы можете получить значение путем разделения строки (т. е. "Счет-фактура договор SignedWorkOrder", используя пример Любош же). Вы можете контролировать сериализации значений в веб-сервисы asp.net используя XmlEnumAttribute, или с помощью атрибута EnumMember, когда с помощью WCF.
0 голосов
от
Если вы потребляете ваш веб-службу .Чистая страница/приложение, вы должны быть в состоянии получить доступ к перечислению после добавления веб-ссылки в проект, который занимает служба.
0 голосов
от
Если вы не работаете .Net для .Чистое мыло, можно еще определить при условии перечислитель обе конечные точки с помощью WSDL.
0 голосов
от
Есть несколько довольно веских причин не использовать
enum
s на границе интерфейс подобное. Рассмотрим смею пост на эту тему.
0 голосов
от
Я заметила, что когда, используя "добавить ссылку на службу" в противовес "добавить веб-ссылку" с VS.net фактические значения перечисления встретить, а также имена перечислимых. Это действительно раздражает, как я должен поддерживать оба 2.0 и 3.5 клиентами. Я в конечном итоге того, чтобы идти в 2.0 сгенерированный код прокси веб-сервиса и вручную, добавлением значений перечислимого каждый раз, когда я вношу изменения!
...