Aracılığıyla paylaş


Union View Sınıfı Oluşturma

Birleşim görünümü sınıfı, kaynak sınıf örneklerinin mantıksal bir birleşimidir. Birleşim görünümü sınıfı, kaynak sorguya WHERE yan tümcesi ekleyerek örnekleri sınırlamadığınız sürece kaynak sınıfların tüm örneklerini içerir.

Birleşim görünümü sınıfları, farklı ad alanları veya farklı bilgisayarlarda bulunan benzer veya özdeş sınıfların örneklerini görmek istediğinizde kullanışlıdır. Örneğin, izlenecek farklı disk sürücülerinin örneklerini içeren bir birleşim sınıfı oluşturabilirsiniz.

Ayrıca, birleşim görünüm sınıfının özelliklerini tüm kaynak sınıf örneklerinde bulunmayan özelliklere dayandırabilirsiniz. Kaynak sınıf örnekleri aynı özelliğe sahip değilse, birleşim sınıfı örneklerinin özellikleri NULLdeğerine sahiptir. Örneğin, bir sabit disk sürücüsünün sıcaklık özelliği varsa ancak diğeri yoksa, ikisi arasında bir birleşim oluşturabilirsiniz.

Aşağıdaki yordamda birleşim görünümü sınıfının nasıl oluşturulacağı açıklanmaktadır.

Birleşim görünümü sınıfı oluşturmak için

  1. Sınıf tanımınıza Union dize niteleyicisi ile başlayın.

    JoinOn, Associationve Union niteleyicileri birbirlerini dışlamaktadır.

  2. ViewSources niteleyicisi ile görünüm sınıfında kullanılan kaynak sınıflarını tanımlayan sorguları oluşturun.

  3. Kaynak sınıfların bulunduğu ad alanlarının adlarını ve konumunu ViewSpaces niteleyicisi ile tanımlayın.

  4. PropertySources niteleyicisi ile kaynak sınıflardaki özelliklerle eşleşen özellikleri tanımlayın.

    Gerekirse, HiddenDefault niteleyicisini kullanarak herhangi bir özelliği bir kaynak sınıfa ait olarak etiketleyebilirsiniz.

  5. Birleşim görünümü sınıfınızın kaynak sınıflarının temel özelliklerini tanımlayın.

    Her kaynak sınıfı, CIMTypeile eşleşen aynı sayıda anahtar özelliğe sahip olmalıdır. Ayrıca birleşim görünümü sınıfınızın anahtarları tüm kaynak örnekleri benzersiz olarak tanımlamalıdır. Bazı durumlarda, örneklerin benzersiz olduğundan emin olmak için sistem özelliklerini belirtmeniz gerekebilir. Örneğin, iki farklı ad alanında iki özdeş sınıfın birleşiminden bir görünüm oluşturursanız, iki örneği ayırt etmek için __Namespace özelliğini görünüm sınıfına anahtar olarak ekleyebilirsiniz. Görünüm oluşturmak için aynı ad alanından benzer iki sınıf kullanırsanız, ikisini ayırt etmek için __Class özelliğini kullanabilirsiniz. Görünüm sınıfının sistem özellikleriyle çakışmayı önlemek için görünümdeki sistem özelliklerini yeniden adlandırın.

  6. MethodSource niteleyicisini kullanarak istediğiniz yöntemleri tanımlayın.

    Diğer görünüm sınıflarından farklı olarak birleşim görünümünü değiştirmek için yöntemler oluşturabilirsiniz.

Aşağıdaki kod örneği birleşim görünümü sınıfını açıklar.

[Union, ViewSources{"SELECT Description, DeviceID, __Namespace, FileSystem, FreeSpace, VolumeName FROM LocalDisk", 
    "SELECT Description, DeviceID, __Namespace, FileSystem, FreeSpace, VolumeName FROM RemoteDisk"}, 
    ViewSpaces{"\\\\.\\Root\\LocalNamespace","\\\\.\\Root\\RemoteNamespace"}, 
    dynamic: ToInstance, provider("MS_VIEW_INSTANCE_PROVIDER")]

class UnionOfDrives

{
    [PropertySources{"Description", "Description"}] string des;
    [PropertySources{"DeviceID", "DeviceID"}, key] String did;
    [PropertySources{"__Namespace", "__Namespace"}, key] String KEYID;
    [PropertySources{"FileSystem", "FileSystem"}] String fsystem ;
    [PropertySources{"FreeSpace", "FreeSpace"}] uint64 fspace;
    [PropertySources{"VolumeName", "VolumeName"}] String vname;
};