This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

Type.FindInterfaces أسلوب

Visual Studio 2010

إرجاع صفيفة من Typeالكائنات التي تمثل قائمة تمت تصفيتها الواجهات تطبيق أو توريث الحالي Type.

مساحة الاسم:  System
التجميع:  mscorlib (في mscorlib.dll)

public virtual Type[] FindInterfaces(
	TypeFilter filter,
	Object filterCriteria
)

المعلمات

filter
النوع: System.Reflection.TypeFilter
The TypeFilter تفويض that compares the الواجهات against filterCriteria.
filterCriteria
النوع: System.Object
The بحث خصائص that determines whether an واجهة should be مُضمن في the returned صفيفة.

القيمة المُرجعة

النوع: System.Type[]
صفيفة من Typeعلى الكائنات التي تمثل قائمة تم تصفيتها واجهات تطبيق أو موروثة بواسطة الحالي Type، أو صفيفة فارغ من نوع Typeأو لا توجد واجهات المطابقة لعامل التصفية المطبق أو موروثة بواسطة الحالي Type.

التطبيقات

_Type.FindInterfaces(TypeFilter, Object)

استثناء:شرط
ArgumentNullException

filterهوnull.

TargetInvocationException

تم استدعاء مهيئ ثابتة ويطرح استثناء.

وهذا أسلوب يمكن تجاوزها من قبل فئة مشتقة.

Module.FilterTypeName و Module.FilterTypeNameIgnoreCaseالتفويضات المزودة من قبل System.Reflection.Moduleالفئة أيضا تستخدم، في lieu من System.Reflection.TypeFilterالمفوض.

تعتبر الجميع الواجهات المطبقة بواسطة هذه الفئة أثناء بحث، سواء تم تعريفه من قبل فئة أساسية أو هذه الفئة نفسها.

Th هو أسلوب البحث في هيكلي فئة Base، وإرجاع كل من واجهات مطابقة يطبق كل فئة بالإضافة إلى الجميع تطابق واجهات كل من تلك implements واجهات (التي هو، الإغلاق متعدية واجهات مطابقة هو إرجاع). لا تكرار الواجهات المعادة.

إذا الحالي Typeتمثل معلمة نوع في تعريف نوع عام أو أسلوب عام، FindInterfacesالبحث الجميع الواجهات التي تم تعريفها في القيود الموجودة تشغيل معلمة نوع، والجميع الواجهات موروثة من خلال الواجهات التي تم تعريفها في القيود. إذا كانت الحالي Typeيمثل على وسيطة نوع من نوع عام، FindInterfacesيبحث الجميع الواجهات المطبقة بواسطة النوع، أم لا أنها مطابقة القيود.

ملاحظةملاحظة

FindInterfaces يمكن أن ترجع واجهات العام، حتى تشغيل أنواع غير عام. ل مثال، قد تقوم بتطبيق نوع nongeneric IEnumerable<int>(IEnumerable(Of Integer)في Visual أساسى).

المثال التالي العثور على واجهة معينة تطبيق أو توريث المحدد نوع، ثم يعرض أسماء الواجهة.


using System;
using System.Xml;
using System.Reflection;

public class MyFindInterfacesSample 
{
    public static void Main()
    {
        try
        {
            XmlDocument myXMLDoc = new XmlDocument();
            myXMLDoc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" + "</book>");
            Type myType = myXMLDoc.GetType();

            // Specify the TypeFilter delegate that compares the 
            // interfaces against filter criteria.
            TypeFilter myFilter = new TypeFilter(MyInterfaceFilter);
            String[] myInterfaceList = new String[2] 
                {"System.Collections.IEnumerable", 
                "System.Collections.ICollection"};
            for(int index=0; index < myInterfaceList.Length; index++)
            {
                Type[] myInterfaces = myType.FindInterfaces(myFilter, 
                    myInterfaceList[index]);
                if (myInterfaces.Length > 0) 
                {
                    Console.WriteLine("\n{0} implements the interface {1}.",
                        myType, myInterfaceList[index]);	
                    for(int j =0;j < myInterfaces.Length;j++)
                        Console.WriteLine("Interfaces supported: {0}.", 
                            myInterfaces[j].ToString());
                }
                else
                    Console.WriteLine(
                        "\n{0} does not implement the interface {1}.", 
                        myType,myInterfaceList[index]);	
            }
        }
        catch(ArgumentNullException e)
        {
            Console.WriteLine("ArgumentNullException: " + e.Message);
        }
        catch(TargetInvocationException e)
        {
            Console.WriteLine("TargetInvocationException: " + e.Message);
        }
        catch(Exception e)
        {
            Console.WriteLine("Exception: " + e.Message);
        }
    }

    public static bool MyInterfaceFilter(Type typeObj,Object criteriaObj)
    {
        if(typeObj.ToString() == criteriaObj.ToString())
            return true;
        else
            return false;
    }
}


نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, الإصدار x64 من نظام التشغيل Windows XP Professional, Windows XP Starter Edition, Windows Server 2008, نظام التشغيل Windows Server 2003, نظام التشغيل Windows Server 2000 المزود بحزمة الخدمة SP4, نظام التشغيل Windows Millennium Edition, نظام التشغيل Windows 98

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0, 2.0, 1.1, 1.0

NET Framework. Client Profile

مدعوم في: 4
إظهار: