Uygulamam çalışma zamanında C++/cli code çözümlemek için yansıma kullanır. Yapıcı bir işaretçi yer alırBir ConstructorInfo nesnesinin yönetilmeyen bir parametresi olup olmadığını nasıl belirleyebilirim?
ConstructorInfo constructorInfo;
// ...
var ret = constructorInfo.Invoke(BindingFlags..., null, myParameters, null);
eğer nesnenin kontrol edilemeyen bir parametre olarak: i kullanmak daha sonra istiyorum çünkü
I, tip yönetilmeyen parametrelerine (işaretçiler ve gibi) olmadan bir kurucu sahip olup olmadığını belirlemek için gereken ona boş geçirdiğimde bir döküm istisnası var.
Bunu nasıl belirleyebilirim? IsManaged ... ve IsPointer bu durumda yardımcı olmaz.
Neden IsPointer' yardımcı değil? – Gabe
Diğer bir çok yönetilen nesne IsPointer (yani diziler) için True döndürecektir ... – seldary
A * işaretçisi * bir diziye "IsPointer" için True döndürecektir. Ayrıca, bir C++ dizisi bir işaretçi olarak temsil edilir, böylece bir nesneye bir işaretçi ve bir nesne dizisi esas olarak özdeştir. Bunların hiçbiri, .NET'te gerçek dizi türleri olarak kabul edilmez. – Gabe