Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makale, bu API'nin başvuru belgelerine ek açıklamalar sağlar.
sınıfı MethodBuilder ad, öznitelikler, imza ve yöntem gövdesi dahil olmak üzere ortak ara dilde (CIL) bir yöntemi tam olarak tanımlamak için kullanılır. Çalışma zamanında sınıflar oluşturmak için TypeBuilder sınıfı ile birlikte kullanılır.
Yansıma yayma kullanarak genel yöntemleri tanımlayabilir ve yöntemleri tür üyeleri olarak tanımlayabilirsiniz. Yöntemleri tanımlayan API'ler nesneleri döndürür MethodBuilder .
Genel yöntemler
Genel bir yöntem, ModuleBuilder.DefineGlobalMethod yöntemi kullanılarak tanımlanır ve bu yöntem bir MethodBuilder nesnesi döndürür.
Genel yöntemler statik olmalıdır. Dinamik bir modül genel yöntemler içeriyorsa, tüm genel işlevler tanımlanana kadar ortak dil çalışma zamanı dinamik modülü düzeltmeyi ertelediği için dinamik modül veya içeren dinamik derleme kalıcı hale getirilmeden önce ModuleBuilder.CreateGlobalFunctions yöntemi çağrılmalıdır.
Global bir yerel yöntem, ModuleBuilder.DefinePInvokeMethod yöntemi kullanılarak tanımlanır. Platform çağırma (PInvoke) yöntemleri soyut veya sanal olarak bildirilmemelidir. Çalışma zamanı, platform çağırma yönteminin MethodAttributes.PinvokeImpl özniteliğini ayarlar.
Tiplerin öğesi olarak yöntemler
Yöntemi, nesnesini döndüren TypeBuilder.DefineMethod yöntemi kullanılarak MethodBuilder tür üyesi olarak tanımlanır.
DefineParameter yöntemi, bir parametrenin veya dönüş değerinin ad ve parametre özniteliklerini ayarlamak için kullanılır. ParameterBuilder Bu yöntem tarafından döndürülen nesne bir parametreyi veya dönüş değerini temsil eder. ParameterBuilder nesnesi, sıralamayı ayarlamak, sabit değeri ayarlamak ve özel öznitelikleri uygulamak için kullanılabilir.
Özellikler
Numaralandırmanın MethodAttributes üyeleri dinamik yöntemin kesin karakterini tanımlar:
- Statik yöntemler özniteliği kullanılarak MethodAttributes.Static belirtilir.
- Son yöntemler (geçersiz kılınamayan yöntemler) özniteliği kullanılarak MethodAttributes.Final belirtilir.
- Sanal yöntemler özniteliği kullanılarak MethodAttributes.Virtual belirtilir.
- Soyut yöntemler özniteliği kullanılarak MethodAttributes.Abstract belirtilir.
- Çeşitli öznitelikler yöntem görünürlüğünü belirler. Numaralandırmanın açıklamasına MethodAttributes bakın.
- Aşırı yüklenmiş işleçler uygulayan yöntemlerin özniteliğini ayarlaması MethodAttributes.SpecialName gerekir.
- Sonlandırıcılar MethodAttributes.SpecialName özniteliğini ayarlamalıdır.
Bilinen sorunlar
- MethodBuilder öğesi MethodInfo sınıfından türetilmiş olsa da, MethodInfo sınıfında tanımlanan soyut yöntemlerden bazıları MethodBuilder içinde tam olarak uygulanmamıştır. Bu MethodBuilder yöntemler NotSupportedException'i atar. Örneğin MethodBuilder.Invoke , yöntemi tam olarak uygulanmaz. Bu yöntemlere, kapsayan türü Type.GetType veya Assembly.GetType yöntemlerini kullanarak düşünebilirsiniz.
- Özel değiştiriciler desteklenir.