Aracılığıyla paylaş


MOF Dizileri

Dizi, başvurabileceğiniz aynı veri türündeki veri değerlerinin dizine alınan bir listesidir. MOF, dize ve sayısal dizilere ek olarak ekli nesne ve başvuru dizilerini de destekler.

Aşağıdaki kurallar bir MOF dizisi tanımlar:

  • Özellik tanımlayıcısının ardından kullanılan köşeli ayraçlar, sınıf tanımında bir dizi belirtir.

    Class ArrayDataSample1
    {
        string strArray1[];
    };
    
  • Tüm diziler tek boyutlu olmalıdır.

  • Diziler ilişkisiz olabilir veya açık bir boyuta sahip olabilir.

    Class MyClass
    {
        sint32 MyMethod1 ([in, id(0)] Win32_LogicalDisk DiskArray1[]);
        sint32 MyMethod2 ([in, id(0)] Win32_LogicalDisk DiskArray2[32]);
    };
    

    WMI, sınırlanmış ve ilişkisiz dizileri SAFEARRAY yapıları olarak uygular ve bu da WMI'nin çalışma zamanında dizi boyutlarını değiştirmesine olanak tanır. Açık boyutlu bir dizi bildirdiğinizde, WMI boyutu niteleyici olarak depolar ve boyutu önerilen en büyük boyut olarak kabul eder. Ancak WMI gerekirse boyutu genişletebilir. Açık boyutu değiştirmenin gerçek veriler üzerinde hiçbir etkisi yoktur.

  • Diziler, virgülle ayrılmış bir listede uygun türde değerler belirtilerek başlatılır.

    Class ArrayDataSample2
    {
        [key] string s;
        string strArray2[] = {"hello", "there"};
        sint32 dwArray[] = {1,2,3};
    };
    
  • Başvuru dizisi, nesne yolu dizeleri dizisi olarak bildirilir.

    Nesne yolu dizesini bildirirken, nesne yolunun öğeleri arasına boşluk yerleştirmeyin. Aşağıdaki örnekte nesne yolu başvurusunun nasıl bildirdiği açıklanmaktadır.

    Class ClassWithRefArray
        { 
        [key] string s; 
        object ref refArray[]; 
        };
    
    instance of ClassWithRefArray
        {
        s = 23;
        refArray = {"Disk.Name=\"C:\"", "Disk.Name=\"E:\""};
        };
    
  • Bir diziyi bir yöntem için parametre olarak kullanabilirsiniz, ancak giriş veya giriş-çıkış parametresi için dönüş değeri olarak kullanamazsınız.

  • Dizideki tüm öğeler aynı türde değerler olarak oluşturulur.

    Bir dizinin öğeleri nesne türündeyse, diziye herhangi bir nesne türü yerleştirebilirsiniz. Öte yandan, belirli bir nesne türünü bildirirseniz, WMI dizide yalnızca o sınıfın veya alt sınıfın nesnelerine izin verir. Aşağıdaki örneklerde, nesnesi türünü kullanmayı içeren dizi bildirimleri gösterilmektedir.

    Class EmbedClass
    {
        [key] sint32 PropOfClass;
    };
    
    Class ArrayDataClass
    {
        [key] string s;
        string strArray1[];
        string strArray2[] = {"hello", "there"};
        sint32 dwArray[] = {1,2,3};
        EmbedClass objArray[];
    };
    
    instance of ArrayDataClass
    { 
        s = "keyStuff";
        strArray1 = { "1.2.3.4", "1.2.3.5", "1.2.3.7"};
        strArray2 = 
            {
                "SELECT * FROM RegistryKeyChangeEvent",
                "SELECT * FROM RegistryValueChangeEvent",
                "SELECT * FROM RegistryTreeChangeEvent"
            };
        dwArray  = { 1,2,3,5,6 };
        objArray = {
                       instance of EmbedClass{PropOfClass=3;},
                       instance of EmbedClass{PropOfClass=4;}
                   };
    };