protected override void OnDeserialized() { base.OnDeserialized(); var typeForBindableObjectClass = GetTypeForBindableObjectClass(); _mixinConfigurationAtInstantiationTime = MixinConfiguration.ActiveConfiguration; _bindableObjectProvider = BindableObjectProvider.GetProviderForBindableObjectType(typeForBindableObjectClass); _bindableObjectClass = new DoubleCheckedLockingContainer <BindableObjectClass> (InitializeBindableObjectClass); }
private BindableObjectClass GetBindableObjectClass() { var type = GetType(); if (type == null) { return(null); } if (_bindableObjectClass == null) { var provider = BindableObjectProvider.GetProviderForBindableObjectType(type); _bindableObjectClass = provider.GetBindableObjectClass(type); } return(_bindableObjectClass); }