@@ -557,21 +557,29 @@ private void ParseMetadata()
557557#else
558558 JObject eventMetadata = JSONHelper . ReadJSON < JObject > ( ( string ) targetObj . EventsMetadata [ eventName . ToString ( ) ] ) ;
559559#endif
560- eventHandlers [ eventCount ] = ( string ) eventMetadata [ "handler" ] ;
561- JArray eventInputParms = ( JArray ) eventMetadata [ "iparms" ] ;
562- foreach ( JObject inputParm in eventInputParms )
560+ if ( eventMetadata != null )
563561 {
564- AddParmsMetadata ( inputParm , DynAjaxEventContext . inParmsMetadata , DynAjaxEventContext . inParmsMetadataHash ) ;
565- eventUseInternalParms [ eventCount ] = eventUseInternalParms [ eventCount ] || IsInternalParm ( inputParm ) ;
566- }
567- JArray eventOutputParms = ( JArray ) eventMetadata [ "oparms" ] ;
568- if ( eventOutputParms != null )
569- {
570- foreach ( JObject outputParm in eventOutputParms )
562+ eventHandlers [ eventCount ] = ( string ) eventMetadata [ "handler" ] ;
563+ JArray eventInputParms = ( JArray ) eventMetadata [ "iparms" ] ;
564+ foreach ( JObject inputParm in eventInputParms )
565+ {
566+ AddParmsMetadata ( inputParm , DynAjaxEventContext . inParmsMetadata , DynAjaxEventContext . inParmsMetadataHash ) ;
567+ eventUseInternalParms [ eventCount ] = eventUseInternalParms [ eventCount ] || IsInternalParm ( inputParm ) ;
568+ }
569+ JArray eventOutputParms = ( JArray ) eventMetadata [ "oparms" ] ;
570+ if ( eventOutputParms != null )
571571 {
572- AddParmsMetadata ( outputParm , DynAjaxEventContext . outParmsMetadata , DynAjaxEventContext . outParmsMetadataHash ) ;
572+ foreach ( JObject outputParm in eventOutputParms )
573+ {
574+ AddParmsMetadata ( outputParm , DynAjaxEventContext . outParmsMetadata , DynAjaxEventContext . outParmsMetadataHash ) ;
575+ }
573576 }
574577 }
578+ else
579+ {
580+ GXLogging . Warn ( log , "The event " , eventName , " is not implemented" ) ;
581+ eventHandlers [ eventCount ] = string . Empty ;
582+ }
575583 eventCount ++ ;
576584 }
577585 }
@@ -1024,14 +1032,17 @@ private void DoInvoke(object[] MethodParms)
10241032 for ( int i = 0 ; i < eventHandlers . Length ; i ++ )
10251033 {
10261034 string handler = eventHandlers [ i ] ;
1027- if ( i > 0 )
1035+ if ( ! string . IsNullOrEmpty ( handler ) )
10281036 {
1029- targetObj . PrepareForReuse ( ) ;
1037+ if ( i > 0 )
1038+ {
1039+ targetObj . PrepareForReuse ( ) ;
1040+ }
1041+ _ = targetObj . GetType ( ) . InvokeMember ( handler , BindingFlags . Public |
1042+ BindingFlags . NonPublic | BindingFlags . Instance | BindingFlags . InvokeMethod ,
1043+ Type . DefaultBinder ,
1044+ targetObj , ( eventUseInternalParms [ i ] ? MethodParms : null ) ) ;
10301045 }
1031- _ = targetObj . GetType ( ) . InvokeMember ( handler , BindingFlags . Public |
1032- BindingFlags . NonPublic | BindingFlags . Instance | BindingFlags . InvokeMethod ,
1033- Type . DefaultBinder ,
1034- targetObj , ( eventUseInternalParms [ i ] ? MethodParms : null ) ) ;
10351046 }
10361047 }
10371048 }
0 commit comments