/// <summary> /// デフォルト値を指定のプロパティに設定します。 /// </summary> private void SetDefaultValue(IPropertyObject propertyObj) { var type = propertyObj.PropertyInfo.PropertyType; var dvalue = Util.GetDefaultValue(type); propertyObj.SetValue(this, dvalue); }
/// <summary> /// DefaultSettingValueAttributeを持つプロパティに /// デフォルト値を設定します。 /// </summary> private void ResetProperty(IPropertyObject propertyObj, object value) { var property = propertyObj.PropertyInfo; var type = property.PropertyType; try { if (value != null) { // 同じ型なら値を設定。 if (value.GetType().Equals(type)) { propertyObj.SetValue(this, value); return; } // 値が存在すれば、それをデフォルト値として設定します。 var valueStr = value as string; if (valueStr != null) { object tmpValue; if (TryConvertToValue(type, valueStr, out tmpValue)) { propertyObj.SetValue(this, tmpValue); return; } } } // fallback SetDefaultValue(propertyObj); } catch (Exception ex) { Util.ThrowIfFatal(ex); Log.ErrorException(ex, "{0}.{1}: 値の設定に失敗しました。", GetType(), property.Name); // デフォルト値の設定を行います。 SetDefaultValue(propertyObj); } }