private void Initialize()
{
Serializer = DefaultSerializer;
SerializationConfiguration = DefaultSerializationConfiguration;
SuspendValidation = DefaultSuspendValidationValue;
ValidateUsingDataAnnotations = DefaultValidateUsingDataAnnotationsValue;
DisableEventSubscriptionsOfChildValues = DefaultDisableEventSubscriptionsOfChildValuesValue;
DeserializationSucceeded = false;
HandlePropertyAndCollectionChanges = true;
AlwaysInvokeNotifyChanged = false;
AutomaticallyValidateOnPropertyChanged = true;
var type = GetType();
#if !WINDOWS_PHONE && !NETFX_CORE && !PCL && !NET35
lock (_propertyValuesIgnoredOrFailedForValidation)
{
if (!_propertyValuesIgnoredOrFailedForValidation.ContainsKey(type))
{
_propertyValuesIgnoredOrFailedForValidation.Add(type, new HashSet<string>());
// Ignore modelbase properties
_propertyValuesIgnoredOrFailedForValidation[type].Add("EqualityComparer");
_propertyValuesIgnoredOrFailedForValidation[type].Add("LeanAndMeanModel");
_propertyValuesIgnoredOrFailedForValidation[type].Add("DisableEventSubscriptionsOfChildValues");
_propertyValuesIgnoredOrFailedForValidation[type].Add("IsInitializing");
_propertyValuesIgnoredOrFailedForValidation[type].Add("IsInitialized");
_propertyValuesIgnoredOrFailedForValidation[type].Add("ContainsNonSerializableMembers");
_propertyValuesIgnoredOrFailedForValidation[type].Add("AlwaysInvokeNotifyChanged");
_propertyValuesIgnoredOrFailedForValidation[type].Add("HandlePropertyAndCollectionChanges");
_propertyValuesIgnoredOrFailedForValidation[type].Add("AutomaticallyValidateOnPropertyChanged");
_propertyValuesIgnoredOrFailedForValidation[type].Add("DeserializationSucceeded");
_propertyValuesIgnoredOrFailedForValidation[type].Add("IsValidating");
_propertyValuesIgnoredOrFailedForValidation[type].Add("SuspendValidation");
_propertyValuesIgnoredOrFailedForValidation[type].Add("HideValidationResults");
}
}
#endif
InitializeProperties();
InitializeCustomProperties();
}