Type.DefaultBinder 屬性

定義

取得預設繫結器 (Binder) 的參考,它會實作內部規則來選取由 InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]) 呼叫的適當成員。

C#
public static System.Reflection.Binder DefaultBinder { get; }

屬性值

系統使用的預設繫結器之參考。

範例

下列範例會從 DefaultBinder 屬性取得預設系結器,並將值當做參數傳遞 DefaultBinderInvokeMember ,以叫用 MyClass 的成員。

C#
using System;
using System.Reflection;

public class MyDefaultBinderSample
{
    public static void Main()
    {
        try
        {
            Binder defaultBinder = Type.DefaultBinder;
            MyClass myClass = new MyClass();
            // Invoke the HelloWorld method of MyClass.
            myClass.GetType().InvokeMember("HelloWorld", BindingFlags.InvokeMethod,
                defaultBinder, myClass, new object [] {});
        }
        catch(Exception e)
        {
            Console.WriteLine("Exception :" + e.Message);
        }
    }	

    class MyClass
    {
        public void HelloWorld()
        {
            Console.WriteLine("Hello World");
        }	
    }
}

備註

Common Language Runtime 所提供的預設系結器適用于所有特製化的情況。 如果您需要遵循與所提供預設系結器不同之規則的系結器,請定義衍生自 Binder 類別的類型,並使用 binder 其中一個 InvokeMember 多載的參數傳遞該類型的實例。

反映會模型化一般型別系統的協助工具規則。 例如,如果呼叫端位於相同的元件中,則呼叫端不需要內部成員的特殊許可權。 否則,呼叫端需要 ReflectionPermission 。 這與受保護、私人等成員的查閱一致。

一般原則是 ChangeType 應該只執行擴輾轉換,永遠不會遺失資料。 擴輾轉換的範例是將 32 位帶正負號整數的值轉換為 64 位帶正負號整數的值。 這與縮小轉換不同,這可能會遺失資料。 縮小轉換的範例是將 64 位帶正負號的整數轉換為 32 位帶正負號的整數。

下表列出預設系結器支援的轉換。

來源類型 目標類型
任何型別 其基底類型。
任何型別 其實作的介面。
Char Unt16、UInt32、Int32、UInt64、Int64、Single、Double
Byte Char、Unt16、Int16、UInt32、Int32、UInt64、Int64、Single、Double
SByte Int16、Int32、Int64、Single、Double
UInt16 UInt32、Int32、UInt64、Int64、Single、Double
Int16 Int32、Int64、Single、Double
UInt32 UInt64、Int64、Single、Double
Int32 Int64、Single、Double
UInt64 Single、Double
Int64 Single、Double
Single Double
非參考 參考。

適用於

產品 版本
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

另請參閱