@@ -347,7 +347,9 @@ private MemberData AssembleMembers(Type type, BindingFlags memberBinding)
347
347
switch ( member )
348
348
{
349
349
case ConstructorInfo constructor :
350
- constructors . Add ( AssembleConstructor ( constructor ) ) ;
350
+ if ( TryAssembleConstructor ( constructor , out string [ ] cInfo ) ) {
351
+ constructors . Add ( cInfo ) ;
352
+ }
351
353
break ;
352
354
353
355
case FieldInfo field :
@@ -400,7 +402,10 @@ private MemberData AssembleMembers(Type type, BindingFlags memberBinding)
400
402
var methodDatas = new JsonDictionary < string , MethodData > ( ) ;
401
403
foreach ( KeyValuePair < string , List < MethodInfo > > method in methods )
402
404
{
403
- methodDatas [ method . Key ] = AssembleMethod ( method . Value ) ;
405
+ if ( TryAssembleMethod ( method . Value , out MethodData md ) )
406
+ {
407
+ methodDatas [ method . Key ] = md ;
408
+ }
404
409
}
405
410
406
411
return new MemberData ( )
@@ -457,35 +462,61 @@ private EventData AssembleEvent(EventInfo e)
457
462
} ;
458
463
}
459
464
460
- private string [ ] AssembleConstructor ( ConstructorInfo ctor )
465
+ // private string[] AssembleConstructor(ConstructorInfo ctor)
466
+ private bool TryAssembleConstructor ( ConstructorInfo ctor , out string [ ] result )
461
467
{
468
+ bool success = false ;
462
469
var parameters = new List < string > ( ) ;
463
- foreach ( ParameterInfo param in ctor . GetParameters ( ) )
470
+ try
471
+ {
472
+ foreach ( ParameterInfo param in ctor . GetParameters ( ) )
473
+ {
474
+ parameters . Add ( TypeNaming . GetFullTypeName ( param . ParameterType ) ) ;
475
+ }
476
+
477
+ result = parameters . ToArray ( ) ;
478
+ success = true ;
479
+ }
480
+ catch
464
481
{
465
- parameters . Add ( TypeNaming . GetFullTypeName ( param . ParameterType ) ) ;
482
+ result = null ;
466
483
}
467
484
468
- return parameters . ToArray ( ) ;
485
+ return success ;
469
486
}
470
487
471
- private MethodData AssembleMethod ( List < MethodInfo > methodOverloads )
488
+ // private MethodData AssembleMethod(List<MethodInfo> methodOverloads)
489
+ private bool TryAssembleMethod ( List < MethodInfo > methodOverloads , out MethodData result )
472
490
{
473
491
var overloads = new List < string [ ] > ( ) ;
474
492
foreach ( MethodInfo overload in methodOverloads )
475
493
{
476
494
var parameters = new List < string > ( ) ;
477
- foreach ( ParameterInfo param in overload . GetParameters ( ) )
495
+ try
478
496
{
479
- parameters . Add ( TypeNaming . GetFullTypeName ( param . ParameterType ) ) ;
497
+ foreach ( ParameterInfo param in overload . GetParameters ( ) )
498
+ {
499
+ parameters . Add ( TypeNaming . GetFullTypeName ( param . ParameterType ) ) ;
500
+ }
501
+ overloads . Add ( parameters . ToArray ( ) ) ;
480
502
}
481
- overloads . Add ( parameters . ToArray ( ) ) ;
503
+ catch
504
+ {
505
+ }
506
+ }
507
+
508
+ if ( overloads . Count == 0 )
509
+ {
510
+ result = null ;
511
+ return false ;
482
512
}
483
513
484
- return new MethodData ( )
514
+ result = new MethodData ( )
485
515
{
486
516
ReturnType = TypeNaming . GetFullTypeName ( methodOverloads [ 0 ] . ReturnType ) ,
487
517
OverloadParameters = overloads . ToArray ( )
488
518
} ;
519
+ return true ;
489
520
}
490
521
491
522
private bool IsAssemblyPathExcluded ( string path )
0 commit comments