Aracılığıyla paylaş


Type.DefaultBinder Özellik

Tanım

tarafından çağrılmayacak uygun üyeleri seçmek için iç kuralları uygulayan varsayılan bağlayıcıya bir başvuru InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]) alır.

public:
 static property System::Reflection::Binder ^ DefaultBinder { System::Reflection::Binder ^ get(); };
public static System.Reflection.Binder DefaultBinder { get; }
member this.DefaultBinder : System.Reflection.Binder
Public Shared ReadOnly Property DefaultBinder As Binder

Özellik Değeri

Binder

Sistem tarafından kullanılan varsayılan bağlayıcıya başvuru.

Örnekler

Aşağıdaki örnek, özelliğinden varsayılan cildi alır DefaultBinder ve DefaultBinder değeri parametresi olarak geçirerek MyClass üyesini çağırır InvokeMember .

using namespace System;
using namespace System::Reflection;
ref class MyClass
{
public:
   void HelloWorld()
   {
      Console::WriteLine( "Hello World" );
   }

};

int main()
{
   try
   {
      Binder^ defaultBinder = Type::DefaultBinder;
      MyClass^ myClass = gcnew MyClass;
      
      // Invoke the HelloWorld method of MyClass.
      myClass->GetType()->InvokeMember( "HelloWorld", BindingFlags::InvokeMethod, defaultBinder, myClass, nullptr );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "Exception : {0}", e->Message );
   }

}
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");
        }	
    }
}
Imports System.Reflection

Public Class MyDefaultBinderSample
    Public Shared Sub Main()
        Try
            Dim defaultBinder As Binder = Type.DefaultBinder
            Dim [myClass] As New [MyClass]()
            ' Invoke the HelloWorld method of MyClass.
            [myClass].GetType().InvokeMember("HelloWorld", BindingFlags.InvokeMethod, defaultBinder, [myClass], New Object() {})
        Catch e As Exception
            Console.WriteLine("Exception :" + e.Message.ToString())
        End Try
    End Sub

    Class [MyClass]

        Public Sub HelloWorld()
            Console.WriteLine("Hello World")
        End Sub
    End Class
End Class

Açıklamalar

Ortak dil çalışma zamanıyla birlikte sağlanan varsayılan bağlayıcı, en özel durumlar için geçerlidir. Sağlanan varsayılan Ciltçideki uygulamalardan farklı olan kurallara uyan bir cilde ihtiyacınız varsa, sınıftan türetilmiş bir tür tanımlayın Binder ve bu türün bir örneğini aşırı yüklerden binder birinin parametresini kullanarak geçirin InvokeMember .

Yansıma, ortak tür sisteminin erişilebilirlik kurallarını modeller. Örneğin, arayan aynı derlemede ise, çağıranın iç Üyeler için özel izinleri olması gerekmez. Aksi takdirde, çağıranın ihtiyacı vardır ReflectionPermission . Bu, korunan, özel ve benzeri üyelerin aranması ile tutarlıdır.

Genel ilke, ChangeType verileri asla kaybetmez yalnızca genişletme dönüştürmeleri gerçekleştirmelidir. Genişleyen dönüştürme örneği, 32 bitlik işaretli bir tamsayı olan bir değeri, 64 bit işaretli bir tamsayı olan değere dönüştürmektir. Bu, veri kaybı olabilecek bir daraltma dönüşümden ayırt edilir. Daraltma dönüştürmesi örneği, 64 bitlik işaretli bir tamsayıyı 32 bit işaretli bir tamsayıya dönüştürmektir.

Aşağıdaki tabloda varsayılan bağlayıcı tarafından desteklenen dönüşümler listelenmektedir.

Kaynak Türü Hedef türü
Herhangi bir tür Temel türü.
Herhangi bir tür Uyguladığı arabirim.
Char Unt16, UInt32, Int32, UInt64, Int64, Single, Double
Bayt 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 Tek, Çift
Int64 Tek, Çift
Tek Çift
Başvuru olmayan Başvuruya göre.

Şunlara uygulanır

Ayrıca bkz.