Ben Ünite İçinde 2 özel üye değişkeni olan bir sınıfı test ediyorum. Test ettiğim sınıftan miras kalan bir sınıf oluşturdum.Bir Windows 8 uygulamasında yansıma
İlk başta sadece protected
numarasına erişmek istediğim değişkenleri yaptım, ancak onları özel tutabilseydim ve onlara erişmek için yansıma kullanabilsem iyi olacağını düşündüm. Ben Googled ve çeşitli makaleler (& sorular burada sordu (http://stackoverflow.com/questions/4097682/c-sharp-use-reflection-to-get-a-private-member-variable-from-a-derived -sınıf) ve kabul edilen cevaplar işe yaramadı.
SO bağlı soru
bahsedilen:// _commandCollection is an instance, private member
BindingFlags flags = BindingFlags.Instance | BindingFlags.NonPublic;
// Retrieve a FieldInfo instance corresponding to the field
FieldInfo field = GetType().GetField("_commandCollection", flags);
// Retrieve the value of the field, and cast as necessary
IDbCommand[] cc =(IDbCommand[])field.GetValue(this);
Ancak, GetField()
bir yöntem yoktur. Benzere benzeyen bir yöntem denedim, GetRuntimeField()
ama bu işe yaramadı. (Devralmasını sınıfta)
Benim kodudur:
public List<BaseData> RealAllData
{
get
{
// Use reflection to access the private variable
FieldInfo field = GetType().GetRuntimeField("mAllData");
return (List<BaseData>)field.GetValue(this);
}
}
herkes bu işe yaramazsa neden minnettar olacaktır biliyorsa. Teşekkürler.
Bu, [Windows Mağaza Uygulamaları için .NET Framework'teki Yansıma] alanıdır (http://msdn.microsoft.com/ en-us/library/hh535795.aspx) hepsi ya da farklı bir şey mi? – AakashM
Evet, bu makaleler başlamama yardımcı oldu. Teşekkürler – Luke