System.Xaml.XamlObjectWriter.OnBeforeProperties C# (CSharp) Method

OnBeforeProperties() protected method

protected OnBeforeProperties ( object value ) : void
value object
return void
		protected internal virtual void OnBeforeProperties (object value)
		{
			if (settings.BeforePropertiesHandler != null)
				settings.BeforePropertiesHandler (this, new XamlObjectEventArgs (value));
		}

Usage Example

Esempio n. 1
0
        protected override void OnWriteStartObject()
        {
            var state = object_states.Pop();

            if (object_states.Count > 0)
            {
                var pstate = object_states.Peek();
                if (CurrentMemberState.Value != null)
                {
                    throw WithLineInfo(new XamlDuplicateMemberException(CurrentMember, pstate.Type));
                }
            }
            else
            {
                var obj = source.Settings.RootObjectInstance;
                if (obj != null)
                {
                    if (state.Type.UnderlyingType != null && !state.Type.UnderlyingType.GetTypeInfo().IsAssignableFrom(obj.GetType().GetTypeInfo()))
                    {
                        throw WithLineInfo(new XamlObjectWriterException(
                                               String.Format("RootObjectInstance type '{0}' is not assignable to '{1}'", obj.GetType(), state.Type)));
                    }
                    state.Value          = obj;
                    state.IsInstantiated = true;
                    HandleBeginInit(obj);
                    source.OnBeforeProperties(state.Value);
                }
                root_state = state;
            }
            object_states.Push(state);
            if (!state.Type.IsContentValue(service_provider))
            {
                InitializeObjectIfRequired(true);
            }
            state.IsXamlWriterCreated = true;
        }