Понимание формата пути к объекту WMI

Я хочу написать класс с такой же функциональностью, что и класс .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 : ?

Было бы очень полезно, если бы для каждого токена можно было дать регулярное выражение того, как он выглядит.

9
задан Etan 29 September 2011 в 10:27
поделиться