TypeBuilder.InvokeMember Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Belirtilen üyeyi çağırır. Çağrılacak yöntemin erişilebilir olması ve belirtilen bağlayıcı ve çağırma özniteliklerinin kısıtlamaları altında belirtilen bağımsız değişken listesiyle en özel eşleşmeyi sağlaması gerekir.
public:
override System::Object ^ InvokeMember(System::String ^ name, System::Reflection::BindingFlags invokeAttr, System::Reflection::Binder ^ binder, System::Object ^ target, cli::array <System::Object ^> ^ args, cli::array <System::Reflection::ParameterModifier> ^ modifiers, System::Globalization::CultureInfo ^ culture, cli::array <System::String ^> ^ namedParameters);
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicFields | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicProperties | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicFields | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicProperties)]
public override object? InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object? target, object?[]? args, System.Reflection.ParameterModifier[]? modifiers, System.Globalization.CultureInfo? culture, string[]? namedParameters);
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All)]
public override object? InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object? target, object?[]? args, System.Reflection.ParameterModifier[]? modifiers, System.Globalization.CultureInfo? culture, string[]? namedParameters);
public override object InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] namedParameters);
public override object? InvokeMember(string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object? target, object?[]? args, System.Reflection.ParameterModifier[]? modifiers, System.Globalization.CultureInfo? culture, string[]? namedParameters);
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicFields | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicProperties | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicFields | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicMethods | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicProperties)>]
override this.InvokeMember : string * System.Reflection.BindingFlags * System.Reflection.Binder * obj * obj[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] -> obj
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All)>]
override this.InvokeMember : string * System.Reflection.BindingFlags * System.Reflection.Binder * obj * obj[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] -> obj
override this.InvokeMember : string * System.Reflection.BindingFlags * System.Reflection.Binder * obj * obj[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] -> obj
Public Overrides Function InvokeMember (name As String, invokeAttr As BindingFlags, binder As Binder, target As Object, args As Object(), modifiers As ParameterModifier(), culture As CultureInfo, namedParameters As String()) As Object
Parametreler
- name
- String
Çağrılacak üyenin adı. Bu bir oluşturucu, yöntem, özellik veya alan olabilir. Uygun bir çağırma özniteliği belirtilmelidir. Üyenin adı olarak boş bir dize geçirerek sınıfın varsayılan üyesini çağırmanın mümkün olduğunu unutmayın.
- invokeAttr
- BindingFlags
Çağırma özniteliği. Bu, 'den BindingFlagsbir bit bayrağı olmalıdır.
- binder
- Binder
Bağlamayı, bağımsız değişken türlerini zorlamayı, üyeleri çağırmayı ve yansıma kullanarak nesnelerin alınmasını MemberInfo sağlayan bir nesne. Bağlayıcı ise null, varsayılan bağlayıcı kullanılır. Bkz. Binder.
- target
- Object
Belirtilen üyenin çağrıldığı nesne. Üye statikse, bu parametre yoksayılır.
- args
- Object[]
Bağımsız değişken listesi. Bu, çağrılacak üyenin parametrelerinin sayısını, sırasını ve türünü içeren bir Nesne dizisidir. Parametre yoksa bu null olmalıdır.
- modifiers
- ParameterModifier[]
Çağrılacak üyenin bağımsız değişkenleriyle ilişkili öznitelikleri temsil eden öğelerle aynı uzunlukta args bir dizi. Parametrenin meta verilerde kendisiyle ilişkilendirilmiş öznitelikleri vardır. Bunlar çeşitli birlikte çalışabilirlik hizmetleri tarafından kullanılır. Daha fazla ayrıntı için meta veri belirtimlerine bakın.
- culture
- CultureInfo
Türlerin CultureInfo zorlamasını idare etmek için kullanılan bir örneği. Bu null ise, CultureInfo geçerli iş parçacığı için kullanılır. (Örneğin, 1000'i temsil eden bir Dizeyi Çift değerine dönüştürmek için bunun gerekli olduğunu unutmayın, çünkü 1000 farklı kültürler tarafından farklı temsil edilir.)
- namedParameters
- String[]
Dizideki namedParameters her parametre, dizideki karşılık gelen öğedeki args değeri alır. uzunluğu değerinden argsnamedParametersbüyükse, kalan bağımsız değişken değerleri sırayla geçirilir.
Döndürülenler
Çağrılan üyenin dönüş değerini döndürür.
- Öznitelikler
Özel durumlar
Bu yöntem şu anda tamamlanmamış türler için desteklenmiyor.
Açıklamalar
Yöntem bildirimindeki parametre sayısı belirtilen bağımsız değişken listesindeki bağımsız değişken sayısına eşitse ve her bağımsız değişkenin türü bağlayıcı tarafından parametre türüne dönüştürülebiliyorsa bir yöntem çağrılır.
Bağlayıcı tüm eşleşen yöntemleri bulur. Bu yöntemler istenen bağlama türüne (BindingFlags.InvokeMethod, BindingFlags.GetProperties vb.) göre bulunur. Yöntem kümesi, ad, bağımsız değişken sayısı ve bağlayıcıda tanımlanan bir arama değiştirici kümesine göre filtrelenmiştir. Yöntem seçildikten sonra çağrılır. Erişilebilirlik bu noktada denetlendi. Arama, yöntemiyle ilişkili erişilebilirlik özniteliğine göre hangi yöntem kümesinin aranabileceğini denetleyebilir.
IBinder.BindToMethod yöntemi, çağrılacak yöntemi seçmekle sorumludur. Varsayılan bağlayıcı en özel eşleşmeyi seçer.
Note
Tam güvenilir kod için erişim kısıtlamaları yoksayılır. Yani, koda tam olarak güvenildiğinde yansıma kullanılarak özel oluşturuculara, yöntemlere, alanlara ve özelliklere erişilebilir ve çağrılabilir.
Bu yöntem şu anda desteklenmiyor. veya Type.GetType kullanarak Assembly.GetType türü alabilir ve alınan türdeki yansımayı kullanabilirsiniz.