Я хочу написать класс с такой же функциональностью, что и класс .NET ManagementPath
. На MSDN есть набор статей, который обрабатывает формат путей к объектам. Однако я еще не понимаю этого со всеми частными случаями
. Строковые сравнения, которые имеют дело с путями к объектам, всегда нечувствительны к регистру. ==> применимо ли это также к значениям ключей при запросе экземпляров объекта?
Шестнадцатеричные константы для целых чисел. ==> где они могут возникнуть? только в значениях ключей?
Логические константы для классов с ключами, которые принимают логические значения. ==> какие константы? правда / ложь? 0/1?
Предполагаемый локальный сервер с частичным путем в пространстве имен. Таким образом, указание корневого пространства имен и пространства имен по умолчанию подразумевает корневое пространство имен и пространство имен по умолчанию на локальном сервере.==> Означает ли это только , что если я не укажу сервер, то тогда "." используется как сервер?
Нет пробелов ни внутри элемента, ни между элементами. ==> Почему тогда исходная реализация .NET допускает пробелы в именах серверов?
Встраиваемые кавычки в пути к объектам разрешены, но они должны разделять кавычки с помощью управляющих символов, как в приложениях C или C ++. ==> ???
Только десятичные значения распознаются как числовые части ключей. ==> ???
Все на этой странице: http://msdn.microsoft.com/en-us/library/aa389223 (v = VS.85) .aspx ==>?
Ну, основные пути, которые я считаю допустимыми, выглядят так:
\\Server\Namespace
\Namespace
\\Server\Namespace:Class
\Namespace:Class
Class
\\Server\Namespace:Class.KeyName=KeyValue
\Namespace:Class.KeyName=KeyValue
Class.KeyName=KeyValue
\\Server\Namespace:Class=KeyValue
\Namespace:Class=KeyValue
Class=KeyValue
\\Server\Namespace:Class.FirstKey=FirstValue,SecondKey=SecondValue
\Namespace:Class.FirstKey=FirstValue,SecondKey=SecondValue
Class.FirstKey=FirstValue,SecondKey=SecondValue
\\Server\Namespace:Class=@
\Namespace:Class=@
Class=@
as well as all combinations were the \\ is replaced by a // and/or the
\ between server and namespace is replaced by /
Я что-нибудь здесь забыл?
Это то, что можно извлечь из MSDN. Однако как могут выглядеть отдельные токены? Я думаю, это может быть следующее:
KeyValue = "string" <-- string
1 <-- numeric
0x1 <-- hex
?????????? <-- about the "decimal value" thing and
"embedded quitation mark" thing.
Also, what about whitespaces?
do they have to be abreviated by %20?
KeyName / Class / Server
= string without : or / or \ inside and maybe only [a-z0-9_] ?
Namespace
= string without : or / inside and maybe only [a-z0-9_\]
(.NET implementation also buggy here. accepts forward slashes regardless of
"You cannot use forward slashes within namespace names." on MSDN)
Also, are they allowed to start with \ and end with a : ?
Было бы очень полезно, если бы для каждого токена можно было дать регулярное выражение того, как он выглядит.