Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Использование System.Enum в .NET Gateway
|
|||
|---|---|---|---|
|
#18+
Возьмем простой код из C# по созданию объекта сокета: Код: plaintext Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Пробуем сделать это же на Cache (2009.1.5): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. При выполнении получаем следующую ошибку на вызове ##class(System.Enum).Parse(): Error: ОШИБКА #5023: Ошибка Java Шлюза: Error caught by Gateway.executeOverloadedMethod at InterSystems.Data.CacheClient.Gateway.Gateway.executeOverloadedMethod(ArrayList methods, String methodName, String oref) at InterSystems.Data.CacheClient.Gateway.Gateway.executeMethod() Type provided must be an Enum. Parameter name: enumType at System.Enum.Parse(Type enumType, String value, Boolean ignoreCase) Если перед Parse() вывести tmpType.ToString(), то увидим "System.Object", хотя должно быть "System.Net.Sockets.AddressFamily", поэтому Parse() и ругается на тип объекта в первом аргументе. Возможно я слишком усложняю работу с перечислениями, но примеров от InterSystems практически нет. У кого-нибудь получалось работать с перечислениями в Cache через .NET Gateway? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2011, 16:20 |
|
||
|
Использование System.Enum в .NET Gateway
|
|||
|---|---|---|---|
|
#18+
Turk , Дано: 1) Caché 2010.2.3 2) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. При импорте сборки DLL в Caché генерируются помимо прочего классы-перечисления: System.Net.Sockets.AddressFamily, Enum.Class1.Colors Для передачи перечисления достаточно передать строковое представление значения, например, для примера выше: w ##class(Enum.Class1).Add(GW,1,2),! w ##class(Enum.Class1).Test2(GW).getvalueuu(),! w ##class(Enum.Class1).Test1(GW,##class(Enum.Class1.Colors).#Blue,##class(System.Net.Sockets.AddressFamily).#Banyan).getvalueuu(),! Результат: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2011, 18:41 |
|
||
|
Использование System.Enum в .NET Gateway
|
|||
|---|---|---|---|
|
#18+
servitw ##class(Enum.Class1).Test1(GW,##class(Enum.Class1.Colors).#Blue,##class(System.Net.Sockets.AddressFamily).#Banyan).getvalueuu(),! На этой команде у меня возникает исключение (в своей сборке использовал область ClassLibrary1): Код: plaintext 1. 2. 3. 4. 5. 6. Похоже это ошибка более ранних версий (в частности, 2009.1.5). Перейти на 2010.х пока не можем из-за одного критичного изменения. Посмотрим, что скажет InterSystems на WRC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2011, 11:39 |
|
||
|
|

start [/forum/search_topic.php?author=George+Shot&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
12ms |
get forum list: |
17ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
140ms |
get topic data: |
14ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 484ms |
| total: | 760ms |

| 0 / 0 |
