// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-#if NET_2_0
using System;
using System.Globalization;
using System.IO;
break;
#if (XML_DEP)
case SettingsSerializeAs.Xml:
- XmlSerializer serializer = new XmlSerializer (propertyValue.GetType());
- StringWriter w = new StringWriter(CultureInfo.InvariantCulture);
-
- serializer.Serialize (w, propertyValue);
- serializedValue = w.ToString();
+ if (propertyValue != null) {
+ XmlSerializer serializer = new XmlSerializer (propertyValue.GetType ());
+ StringWriter w = new StringWriter(CultureInfo.InvariantCulture);
+
+ serializer.Serialize (w, propertyValue);
+ serializedValue = w.ToString();
+ }
+ else
+ serializedValue = null;
break;
#endif
case SettingsSerializeAs.Binary:
- BinaryFormatter bf = new BinaryFormatter ();
- MemoryStream ms = new MemoryStream ();
- bf.Serialize (ms, propertyValue);
- serializedValue = ms.ToArray();
+ if (propertyValue != null) {
+ BinaryFormatter bf = new BinaryFormatter ();
+ MemoryStream ms = new MemoryStream ();
+ bf.Serialize (ms, propertyValue);
+ serializedValue = ms.ToArray();
+ }
+ else
+ serializedValue = null;
break;
default:
serializedValue = null;
}
}
+ internal object Reset ()
+ {
+ propertyValue = GetDeserializedDefaultValue ();
+ dirty = true;
+ defaulted = true;
+ needPropertyValue = true;
+ return propertyValue;
+ }
+
private object GetDeserializedDefaultValue ()
{
if (property.DefaultValue == null)
- if (property.PropertyType.IsValueType)
+ if (property.PropertyType != null && property.PropertyType.IsValueType)
return Activator.CreateInstance (property.PropertyType);
else
return null;
try {
switch (property.SerializeAs) {
case SettingsSerializeAs.String:
- if (serializedValue is string && ((string) serializedValue).Length > 0)
+ if (serializedValue is string)
deserializedObject = TypeDescriptor.GetConverter (property.PropertyType).ConvertFromInvariantString ((string) serializedValue);
break;
#if (XML_DEP)
}
-#endif