ManagementReferenceAttribute Sınıf

Tanım

ManagementReferenceAttribute, bir sınıf üyesini, özelliğini veya yöntem parametresini başka bir yönetim nesnesine veya sınıfına başvuru olarak işaretler.

Not: WMI .NET kitaplıkları artık son durumda kabul edilir ve bu kitaplıkları etkileyen güvenlikle ilgili olmayan sorunlar için başka geliştirme, geliştirme veya güncelleştirme sağlanmayacaktır. MI API'leri tüm yeni geliştirmeler için kullanılmalıdır.

public ref class ManagementReferenceAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property, AllowMultiple=false)]
public sealed class ManagementReferenceAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Parameter | System.AttributeTargets.Property, AllowMultiple=false)>]
type ManagementReferenceAttribute = class
    inherit Attribute
Public NotInheritable Class ManagementReferenceAttribute
Inherits Attribute
Devralma
ManagementReferenceAttribute
Öznitelikler

Örnekler

Bu örnekte özniteliğini ManagementReferenceAttribute ile birlikte kullanarak diğer iki WMI sınıfını ManagementQualifierAttribute bağlayan bir ilişkilendirme WMI sınıfı oluşturma gösterilmektedir. Örnek, kök/assoc ad alanında üç WMI sınıfını kullanıma sunan ayrılmış bir sağlayıcıdır. İlk iki sınıf olan NumberPhonetic ve NumberLetter, son sınıf olan LetterPhonetic ile bağlantılıdır.

Örneği derlemek için hem System.Management.Instrumentation hem de System.Configuration.Install başvurularını eklemeniz gerekir. Sonuçta elde edilen yürütülebilir dosyada installutil.exe çalıştırmanız ve uygulanan WMI sınıflarını kullanmak için programın çalıştığından emin olmanız gerekir.

using System;  
using System.Collections;  
using System.Management.Instrumentation;  

[assembly: WmiConfiguration("root/assoc", HostingModel = ManagementHostingModel.Decoupled)]  

[System.ComponentModel.RunInstaller(true)]  
public class TheInstaller : DefaultManagementInstaller  
{ }  

namespace AssocExample  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            InstrumentationManager.RegisterType(typeof(NumberPhonetic));  
            InstrumentationManager.RegisterType(typeof(NumberLetter));  
            InstrumentationManager.RegisterType(typeof(LetterPhonetic));  

            Console.WriteLine("Press enter to exit");  
            Console.ReadLine();  

            InstrumentationManager.UnregisterType(typeof(NumberPhonetic));  
            InstrumentationManager.UnregisterType(typeof(NumberLetter));  
            InstrumentationManager.UnregisterType(typeof(LetterPhonetic));  

        }  
    }  

  [ManagementEntity]  
    public class NumberPhonetic  
    {  
        [ManagementKey]  
        public int Number;  

        [ManagementProbe]  
        public string Name;  

        [ManagementBind]  
        public NumberPhonetic(int Number)  
        {  
           this.Number = Number;  
           if(Number == 1)  
           {  
              Name = "alpha";  
           }  
           else if(Number == 2)  
           {  
              Name = "bravo";  
           }  
           else  
           {  
              throw new InstanceNotFoundException();  
           }  
        }  

        [ManagementEnumerator]  
        static public IEnumerable EnumerateInstances()  
        {  
            for (int i = 1; i < 3; i++)  
            {  
                yield return new NumberPhonetic(i);  
            }  
        }  

    }  

    [ManagementEntity]  
    public class NumberLetter  
    {  
        [ManagementKey]  
        public int Number;  

        [ManagementProbe]  
        public string Letter;  

        [ManagementBind]  
        public NumberLetter(int Number)  
        {  
           this.Number = Number;  
           if(Number == 1)  
           {  
              Letter = "A";  
           }  
           else if(Number == 2)  
           {  
              Letter = "B";  
           }  
           else  
           {  
              throw new InstanceNotFoundException();  
           }  
        }  

        [ManagementEnumerator]  
        static public IEnumerable EnumerateInstances()  
        {  
            for (int i = 1; i < 3; i++)  
            {  
                yield return new NumberLetter(i);  
            }  
        }  

    }  

    [ManagementEntity]  
    [ManagementQualifier("Association", Flavor = ManagementQualifierFlavors.DisableOverride)]  
    public class LetterPhonetic  
    {  
        [ManagementReference(Type = "NumberLetter")]  
        [ManagementKey]  
        public string LetterNumber;  

        [ManagementReference(Type = "NumberPhonetic")]  
        [ManagementKey]  
        public string PhoneticNumber;  

        [ManagementEnumerator]  
        static public IEnumerable EnumerateInstances()  
        {  
            ArrayList insts = new ArrayList();  
            for (int i = 1; i < 3; i++)  
            {  
                LetterPhonetic inst = new LetterPhonetic();  
                inst.LetterNumber = "Letter = " + i;  
                inst.PhoneticNumber = "Phonetic = " + i;  
                insts.Add(inst);  
            }  
            return insts;  
        }  

    }  

}  

Açıklamalar

Aşağıdaki örnekte gösterildiği gibi ilişkilendirme sınıfları oluşturmak için bu özniteliği kullanabilirsiniz.

Oluşturucular

ManagementReferenceAttribute()

ManagementReferenceAttribute sınıfının yeni bir örneğini başlatır. Bu, parametresiz oluşturucudur.

Özellikler

Type

Başvuruda bulunan türün adını alır veya ayarlar.

TypeId

Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır.

(Devralındığı yer: Attribute)

Yöntemler

Equals(Object)

Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değeri döndürür.

(Devralındığı yer: Attribute)
GetHashCode()

Bu örneğe ilişkin karma kodu döndürür.

(Devralındığı yer: Attribute)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
IsDefaultAttribute()

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir.

(Devralındığı yer: Attribute)
Match(Object)

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).

(Devralındığı yer: Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bir nesne tarafından sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)

Şunlara uygulanır