SORU
20 AĞUSTOS 2010, Cuma


Dönüştürmek.() ChangeType türü Null başarısız.

Bir dize olarak var olan nesne özellik değeri, bir dize dönüştürmek istiyorum. Bu yüzden bu şekilde yapmaya çalışıyorum:

string modelProperty = "Some Property Name";
string value = "SomeValue";
var property = entity.GetType().GetProperty(modelProperty);
if (property != null) {
    property.SetValue(entity, 
        Convert.ChangeType(value, property.PropertyType), null);
}

Sorun bu başarısız ve özellik türü null olabilecek bir tür olduğunda Geçersiz Dökme bir özel Durum üretiliyor. Bu durumda değerleri alamamak Dönüştürülecek - olacak iş yaparsam o el ile (örneğin DateTime? d = Convert.ToDateTime(value);) gördüm bazı benzer sorular ama yine de olmaz.

CEVAP
20 AĞUSTOS 2010, Cuma


Denenmemiş, ama belki bir işe yarayacak gibi:

string modelProperty = "Some Property Name";
string value = "Some Value";

var property = entity.GetType().GetProperty(modelProperty);
if (property != null)
{
    Type t = Nullable.GetUnderlyingType(property.PropertyType) ?? property.PropertyType;

    object safeValue = (value == null) ? null : Convert.ChangeType(value, t);

    property.SetValue(entity, safeValue, null);
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • IGN

    IGN

    19 EYLÜL 2006
  • jesiel santos

    jesiel santo

    15 Ocak 2009
  • Madeon

    Madeon

    31 Ocak 2010