2012-10-26 19 views
5

temel sınıf tanımını göz önüne alındığında: Dinamik tip dönüşüm kullanılarakYansımayı kullanarak nesne örneğinin bir özelliğinin değerini dinamik olarak nasıl belirlenir?

using System.Reflection; 

public class Car() 
{ 
    public int speed {get;set;} 

    public void setSpeed() 
    { 
     Type type = this.GetType(); 
     PropertyInfo property = type.GetProperty(PropertyName); 
     property.SetValue(type, Convert.ToInt32(PropertyValue), null); 
    } 
} 

Bu kod örneği basitleştirilmiş olup, sadece bir çalışma örneği örneğinde o mülkü ayarlamak istiyorum.

Düzenleme: Yukarıdaki kodda PropertyName ve PropertyValue da basitleştirilmiştir. peşin

+0

yapabileceği bir naif tip dönüşüm için

public void setSpeed() { Type type = this.GetType(); PropertyInfo property = type.GetProperty(PropertyName); property.SetValue(this, Convert.ToInt32(PropertyValue), null); } 

: Senin durumunda hiç kodunu değiştirmek? –

+0

@CuongLe, "Araç" türüne ait bir özelliğin değerini "System.Type" türünde çalışmayan bir değerin Çalışma

cevap

7

yılında

teşekkürler Ayarlamak istediğiniz özelliği tutan örneği olmalıdır geçmesi İlk argüman. Statik özellik ise, ilk bağımsız değişken için null. Eğer mevcut koduyla olsun hangi sorun

var value = Convert.ChangeType(PropertyValue,property.PropertyType); 
    property.SetValue(this, value, null); 
+0

Yup - bir çekicilik gibi çalıştı! –

İlgili konular