Вы переключаете String
, а subArea.StartsWith()
возвращает Boolean
, поэтому вы не можете этого сделать. Я предлагаю вам сделать это следующим образом:
if (subArea.StartsWith("3*") || subArea.StartsWith("03*"))
return "123";
switch(subArea)
{
case "4100":
case "4101":
case "4102":
case "4200":
return "ABC";
case "600A":
return "XWZ";
default:
return "ABCXYZ123";
}
Результат будет таким же.
Я настоятельно рекомендовал бы буферы протокола. Они невероятно просты в использовании, предлагают высокую эффективность и заботятся о проблемах как порядок байтов и назад совместимость. Для создания этого, еще более привлекательные, сериализированные данные независимы от языка благодаря многочисленным реализациям языка.
ACE и ДАО ACE приходят на ум, но Вам не могли бы понравиться размер и объем его. http://www.cs.wustl.edu/~schmidt/ACE.html
Относительно Вашего запроса о "быстром" и повышении. Это - субъективный термин и не зная Ваших требований (пропускная способность, и т.д.) трудно ответить на это для Вас. Не то, чтобы у меня есть любые сравнительные тесты для материала повышения самого...
Там передают слои, которые можно использовать, но это, вероятно, медленнее, чем повышение. Я сказал бы, что Вы определили хорошее решение в повышении, но я только использовал ACE и другие собственные продукты связи/обмена сообщениями.
Мой предположение - то, что повышение достаточно быстро. Я использовал его в предыдущих проектах сериализировать данные к и от диска, и его производительность даже не подошла как проблема.
Мой ответ здесь переговоры о сериализации в целом, которая может быть полезна Вам, вне которой библиотеки сериализации Вы принимаете решение использовать.
Однако похоже на знание большинства основных горячих точек с сериализацией (строковое кодирование порядка байтов). Вы действительно не учитывали управление версиями и вперед/назад совместимость. Если время не очень важно, я рекомендую писать Ваш собственный код сериализации. Это - поучительный опыт, и уроки, которые Вы извлекаете, неоценимы. Хотя я буду предупреждать Вас, что это будет иметь тенденцию делать, Вы ненавидеть XML основывали протоколы для их чрезмерно увеличенного в размерах.:)
, Какой бы ни путь Вы выбираете удачу со своим проектом.
Заблаговременно не оптимизировать. Имейте размеры сначала и оптимизируйте второй.
boost.serialization не заботится о строковой кодировке или порядке байтов. Вы будете так же богатым, не использующим его, если это будет иметь значение для Вас.
Вы могли бы хотеть изучить ICE от ZeroC: http://www.zeroc.com/
Это работает подобное CORBA, за исключением того, что это полностью specced и определено компанией. Позитивный аспект - то, что работа реализаций, как предназначено, с тех пор нет всего этого многих. Оборотная сторона - то, что, если Вы используете язык, они не поддерживают, Вам не повезло.
Если Вы только отправляете четко определенные определенные структуры данных, то, возможно, необходимо ли смотреть ASN.1 как методология кодирования?
Существует также Экономия , который похож на альфа-проект, но используется и разрабатывается Facebook, таким образом, это имеет несколько пользователей его.
Или старый добрый DCE, который был стандартным MS, решил использовать для COM. Его теперь открытый исходный код, 20 лет слишком поздно, но лучше, чем никогда.