Type.DefaultBinder Özellik
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.
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
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. |