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 namespace System;
using namespace System::Reflection;
using namespace System::Collections;
public ref class MySecondClass{};
// This class does not fit the filter criterion My*.
public ref class YourClass{};
int main()
{
array<Module^>^moduleArray;
moduleArray = Assembly::GetExecutingAssembly()->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 ];
array<Type^>^tArray;
tArray = myModule->FindTypes( Module::FilterTypeName, "My*" );
IEnumerator^ myEnum = tArray->GetEnumerator();
while ( myEnum->MoveNext() )
{
Type^ t = safe_cast<Type^>(myEnum->Current);
Console::WriteLine( "Found a module beginning with My*: {0}.", t->Name );
}
}
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 filterCriteria
nesnesini 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 filter
null
, 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.