Module.FindTypes(TypeFilter, Object) 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.
Verilen filtre ve filtre ölçütleri tarafından kabul edilen bir sınıf dizisi döndürür.
public:
virtual cli::array <Type ^> ^ FindTypes(System::Reflection::TypeFilter ^ filter, System::Object ^ filterCriteria);
public virtual Type[] FindTypes(System.Reflection.TypeFilter? filter, object? filterCriteria);
public virtual Type[] FindTypes(System.Reflection.TypeFilter filter, object filterCriteria);
abstract member FindTypes : System.Reflection.TypeFilter * obj -> Type[]
override this.FindTypes : System.Reflection.TypeFilter * obj -> Type[]
Public Overridable Function FindTypes (filter As TypeFilter, filterCriteria As Object) As Type()
Parametreler
- filter
- TypeFilter
Sınıflara filtre uygulamak için kullanılan temsilci.
- filterCriteria
- Object
Sınıfları filtrelemek için kullanılan nesne.
Döndürülenler
Filtre tarafından kabul edilen sınıfları içeren tür Type dizisi.
Özel durumlar
Modüldeki bir veya daha fazla sınıf yüklenemedi.
Örnekler
Aşağıdaki örnekte yöntemi gösterilmektedir FindTypes .
using System;
using System.Reflection;
namespace ReflectionModule_Examples
{
class MyMainClass
{
static void Main()
{
Module[] moduleArray;
moduleArray = typeof(MyMainClass).Assembly.GetModules(false);
// In a simple project with only one module, the module at index
// 0 will be the module containing these classes.
Module myModule = moduleArray[0];
Type[] tArray;
tArray = myModule.FindTypes(Module.FilterTypeName, "My*");
foreach(Type t in tArray)
{
Console.WriteLine("Found a module beginning with My*: {0}.", t.Name);
}
}
}
class MySecondClass
{
}
// This class does not fit the filter criteria My*.
class YourClass
{
}
}
Imports System.Reflection
Namespace ReflectionModule_Examples
Class MyMainClass
Shared Sub Main()
Dim moduleArray() As [Module]
moduleArray = GetType(MyMainClass).Assembly.GetModules(False)
' In a simple project with only one module, the module at index
' 0 will be the module containing these classes.
Dim myModule As [Module] = moduleArray(0)
Dim tArray() As Type
tArray = myModule.FindTypes([Module].FilterTypeName, "My*")
Dim t As Type
For Each t In tArray
Console.WriteLine("Found a module beginning with My*: {0}", t.Name)
Next t
End Sub
End Class
Class MySecondClass
End Class
' This class does not fit the filter criteria My*.
Class YourClass
End Class
End Namespace 'ReflectionModule_Examples
Açıklamalar
ReflectionTypeLoadException özel bir sınıf yükü özel durumudur. özelliği, ReflectionTypeLoadException.Types modülde tanımlanan ve yüklenen sınıf dizisini içerir. Bu dizi bazı null değerler içerebilir.
ReflectionTypeLoadException.LoaderExceptions özelliği, sınıf yükleyicisi tarafından oluşturulmuş özel durumları temsil eden bir özel durumlar dizisidir. Sınıf dizisindeki delikler özel durumlarla hizalı.
tarafından filter verilen temsilci modüldeki her sınıf için çağrılır Type ve hem sınıfı hem de verilen filterCriterianesnesini temsil eder. Belirli bir sınıf döndürürse filter , bu sınıf döndürülen diziye eklenir. döndürürse filternull, tüm sınıflar döndürülür ve filterCriteria yoksayılır.
FindTypes diziler gibi parametreli türleri aramak için kullanılamaz.