@@ -2411,66 +2411,98 @@ internal static IEnumerable<T> Sort<T> (IEnumerable<T> list)
2411
2411
return l ;
2412
2412
}
2413
2413
2414
- private void UpdateMember ( DocsNodeInfo info , FrameworkTypeEntry typeEntry , Dictionary < string , List < MemberReference > > implementedMembers , IEnumerable < Eiimembers > eiiMenbers )
2414
+ private void UpdateMember ( DocsNodeInfo info , FrameworkTypeEntry typeEntry , Dictionary < string , List < MemberReference > > implementedMembers , IEnumerable < Eiimembers > eiiMenbers )
2415
2415
{
2416
2416
XmlElement me = ( XmlElement ) info . Node ;
2417
2417
MemberReference mi = info . Member ;
2418
- typeEntry . ProcessMember ( mi ) ;
2418
+ typeEntry . ProcessMember ( mi ) ;
2419
2419
2420
2420
2421
- var memberName = GetMemberName ( mi ) ;
2422
- me . SetAttribute ( "MemberName" , memberName ) ;
2421
+ var memberName = GetMemberName ( mi ) ;
2422
+ me . SetAttribute ( "MemberName" , memberName ) ;
2423
2423
2424
- WriteElementText ( me , "MemberType" , GetMemberType ( mi ) ) ;
2424
+ WriteElementText ( me , "MemberType" , GetMemberType ( mi ) ) ;
2425
+ MakeSetMethodName ( typeEntry , me , mi ) ;
2425
2426
AddImplementedMembers ( typeEntry , mi , implementedMembers , me , eiiMenbers ) ;
2426
2427
2427
2428
if ( ! no_assembly_versions )
2428
2429
{
2429
2430
if ( ! IsMultiAssembly )
2430
- UpdateAssemblyVersions ( me , mi , true ) ;
2431
+ UpdateAssemblyVersions ( me , mi , true ) ;
2431
2432
else
2432
2433
{
2433
- var node = AddAssemblyNameToNode ( me , mi . Module , mi . DeclaringType . Resolve ( ) ) ;
2434
+ var node = AddAssemblyNameToNode ( me , mi . Module , mi . DeclaringType . Resolve ( ) ) ;
2434
2435
2435
2436
if ( typeEntry . IsMemberOnFirstFramework ( mi ) )
2436
2437
{
2437
2438
node . SelectNodes ( "AssemblyVersion" ) . Cast < XmlNode > ( ) . ToList ( ) . ForEach ( e => e . ParentNode . RemoveChild ( e ) ) ;
2438
2439
}
2439
2440
2440
- UpdateAssemblyVersionForAssemblyInfo ( node , me , new [ ] { GetAssemblyVersion ( mi . Module . Assembly ) } , add : true ) ;
2441
+ UpdateAssemblyVersionForAssemblyInfo ( node , me , new [ ] { GetAssemblyVersion ( mi . Module . Assembly ) } , add : true ) ;
2441
2442
}
2442
2443
}
2443
2444
else
2444
2445
{
2445
- ClearElement ( me , "AssemblyInfo" ) ;
2446
+ ClearElement ( me , "AssemblyInfo" ) ;
2446
2447
}
2447
2448
2448
- MakeMemberAttributes ( me , mi , typeEntry ) ;
2449
+ MakeMemberAttributes ( me , mi , typeEntry ) ;
2449
2450
2450
- MakeReturnValue ( typeEntry , me , mi , MDocUpdater . HasDroppedNamespace ( mi ) ) ;
2451
+ MakeReturnValue ( typeEntry , me , mi , MDocUpdater . HasDroppedNamespace ( mi ) ) ;
2451
2452
if ( mi is MethodReference )
2452
2453
{
2453
2454
MethodReference mb = ( MethodReference ) mi ;
2454
- if ( mb . IsGenericMethod ( ) )
2455
- MakeTypeParameters ( typeEntry , me , mb . GenericParameters , mi , MDocUpdater . HasDroppedNamespace ( mi ) ) ;
2455
+ if ( mb . IsGenericMethod ( ) )
2456
+ MakeTypeParameters ( typeEntry , me , mb . GenericParameters , mi , MDocUpdater . HasDroppedNamespace ( mi ) ) ;
2456
2457
}
2457
2458
bool fxAlternateTriggered = false ;
2458
- MakeParameters ( me , mi , typeEntry , ref fxAlternateTriggered , MDocUpdater . HasDroppedNamespace ( mi ) ) ;
2459
+ MakeParameters ( me , mi , typeEntry , ref fxAlternateTriggered , MDocUpdater . HasDroppedNamespace ( mi ) ) ;
2459
2460
2460
2461
string fieldValue ;
2461
- if ( mi is FieldDefinition && GetFieldConstValue ( ( FieldDefinition ) mi , out fieldValue ) )
2462
- WriteElementText ( me , "MemberValue" , fieldValue ) ;
2462
+ if ( mi is FieldDefinition && GetFieldConstValue ( ( FieldDefinition ) mi , out fieldValue ) )
2463
+ WriteElementText ( me , "MemberValue" , fieldValue ) ;
2464
+
2465
+ info . Node = WriteElement ( me , "Docs" ) ;
2466
+ MakeDocNode ( info , typeEntry . Framework . Importers , typeEntry ) ;
2463
2467
2464
- info . Node = WriteElement ( me , "Docs" ) ;
2465
- MakeDocNode ( info , typeEntry . Framework . Importers , typeEntry ) ;
2466
-
2467
2468
foreach ( MemberFormatter f in FormatterManager . MemberFormatters )
2468
2469
{
2469
- UpdateSignature ( f , mi , me , typeEntry , implementedMembers ) ;
2470
+ UpdateSignature ( f , mi , me , typeEntry , implementedMembers ) ;
2470
2471
}
2471
2472
2472
- OrderMemberNodes ( me , me . ChildNodes ) ;
2473
- UpdateExtensionMethods ( me , info ) ;
2473
+ OrderMemberNodes ( me , me . ChildNodes ) ;
2474
+ UpdateExtensionMethods ( me , info ) ;
2475
+ }
2476
+
2477
+ public static void MakeSetMethodName ( FrameworkTypeEntry typeEntry , XmlElement me , MemberReference mi )
2478
+ {
2479
+ if ( mi is PropertyDefinition )
2480
+ {
2481
+ var setMethodName = ( ( PropertyDefinition ) mi ) . SetMethod ? . Name . Split ( '.' ) . LastOrDefault ( ) ;
2482
+ if ( setMethodName != null && ! setMethodName . StartsWith ( "set" ) )
2483
+ {
2484
+ DocUtils . AddElementWithFx (
2485
+ typeEntry ,
2486
+ parent : me ,
2487
+ isFirst : typeEntry . IsMemberOnFirstFramework ( mi ) ,
2488
+ isLast : typeEntry . IsMemberOnLastFramework ( mi ) ,
2489
+ allfxstring : new Lazy < string > ( ( ) => typeEntry . AllFrameworkStringForMember ( mi ) ) ,
2490
+ clear : parent =>
2491
+ {
2492
+ ClearElement ( parent , "SetMethodName" ) ;
2493
+ } ,
2494
+ findExisting : parent =>
2495
+ {
2496
+ return parent . SelectSingleNode ( $ "Member/SetMethodName") as XmlElement ;
2497
+ } ,
2498
+ addItem : parent =>
2499
+ {
2500
+ var newNode = WriteElementText ( parent , "SetMethodName" , setMethodName , forceNewElement : false ) ;
2501
+
2502
+ return newNode ;
2503
+ } ) ;
2504
+ }
2505
+ }
2474
2506
}
2475
2507
2476
2508
private static void UpdateSignature ( MemberFormatter formatter , TypeDefinition type , XmlElement xmlElement , FrameworkTypeEntry typeEntry )
@@ -2913,6 +2945,7 @@ static void AddXmlNode (XmlElement[] relevant, Func<XmlElement, bool> valueMatch
2913
2945
"Metadata" ,
2914
2946
"MemberSignature" ,
2915
2947
"MemberType" ,
2948
+ "SetMethodName" ,
2916
2949
"Implements" ,
2917
2950
"AssemblyInfo" ,
2918
2951
"Attributes" ,
0 commit comments