2010-05-27 18 views
48

her tür dizeyi dönüştürmek için nasılBen bir genel tür bir dize dönüştürmek istediğiniz

bu var:

ben, o mülke türüne 'inputString' dönüştürmek istediğiniz
string inputValue = myTxtBox.Text;  

PropertyInfo propInfo = typeof(MyClass).GetProperty(myPropertyName); 
Type propType = propInfo.PropertyType; 

object propValue = ????? 

uyumlu olup olmadığını kontrol edin bunu nasıl yapabilirim?

tks

cevap

78
using System.ComponentModel; 

TypeConverter typeConverter = TypeDescriptor.GetConverter(propType); 
object propValue = typeConverter.ConvertFromString(inputValue); 
+1

Bu, 'Convert.ChangeType' ile karşılaştırıldığında upvotes alır şaşırdım. –

+6

Muhtemelen, 'ChangeType' dönüştürülmeye değil dönüştürmeye çalıştığı için. Örneğin, ChangeType 'String'den' Nullable '' '' '' '' '' '' '' '' '' '' '' 'dır. – efdee

11

deneyin Convert.ChangeType

object propvalue = Convert.ChangeType(inputValue, propType); 
+2

Bu gerçekten bir yorumdur, sorunun cevabı değildir. Yazar için geri bildirim bırakmak için lütfen "yorum ekle" yi kullanın. –

+0

@SteveGuidi: Varsayılan, bu arada, her ikisine de tnx cevabını zaten düzenledi. – SWeko

+1

@SWeko, gözden geçirme sayfası aracılığıyla düzenlerken varsayılan yanıttır (ve bu soru ikimiz için de geçerliydi). Bunun yerine sadece düzenledim. – Default

3

I do not gerçekten senin arşivlemiştik çalışıyorsunuz anlamak düşünüyorum, ama dinamik casting demek ..? Böyle bir şey:

TypeDescriptor.GetConverter(typeof(String)).ConvertTo(myObject, typeof(Program)); 

Şerefe.

İlgili konular