@@ -2411,66 +2411,98 @@ internal static IEnumerable<T> Sort<T> (IEnumerable<T> list)
24112411 return l ;
24122412 }
24132413
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 )
24152415 {
24162416 XmlElement me = ( XmlElement ) info . Node ;
24172417 MemberReference mi = info . Member ;
2418- typeEntry . ProcessMember ( mi ) ;
2418+ typeEntry . ProcessMember ( mi ) ;
24192419
24202420
2421- var memberName = GetMemberName ( mi ) ;
2422- me . SetAttribute ( "MemberName" , memberName ) ;
2421+ var memberName = GetMemberName ( mi ) ;
2422+ me . SetAttribute ( "MemberName" , memberName ) ;
24232423
2424- WriteElementText ( me , "MemberType" , GetMemberType ( mi ) ) ;
2424+ WriteElementText ( me , "MemberType" , GetMemberType ( mi ) ) ;
2425+ MakeSetMethodName ( typeEntry , me , mi ) ;
24252426 AddImplementedMembers ( typeEntry , mi , implementedMembers , me , eiiMenbers ) ;
24262427
24272428 if ( ! no_assembly_versions )
24282429 {
24292430 if ( ! IsMultiAssembly )
2430- UpdateAssemblyVersions ( me , mi , true ) ;
2431+ UpdateAssemblyVersions ( me , mi , true ) ;
24312432 else
24322433 {
2433- var node = AddAssemblyNameToNode ( me , mi . Module , mi . DeclaringType . Resolve ( ) ) ;
2434+ var node = AddAssemblyNameToNode ( me , mi . Module , mi . DeclaringType . Resolve ( ) ) ;
24342435
24352436 if ( typeEntry . IsMemberOnFirstFramework ( mi ) )
24362437 {
24372438 node . SelectNodes ( "AssemblyVersion" ) . Cast < XmlNode > ( ) . ToList ( ) . ForEach ( e => e . ParentNode . RemoveChild ( e ) ) ;
24382439 }
24392440
2440- UpdateAssemblyVersionForAssemblyInfo ( node , me , new [ ] { GetAssemblyVersion ( mi . Module . Assembly ) } , add : true ) ;
2441+ UpdateAssemblyVersionForAssemblyInfo ( node , me , new [ ] { GetAssemblyVersion ( mi . Module . Assembly ) } , add : true ) ;
24412442 }
24422443 }
24432444 else
24442445 {
2445- ClearElement ( me , "AssemblyInfo" ) ;
2446+ ClearElement ( me , "AssemblyInfo" ) ;
24462447 }
24472448
2448- MakeMemberAttributes ( me , mi , typeEntry ) ;
2449+ MakeMemberAttributes ( me , mi , typeEntry ) ;
24492450
2450- MakeReturnValue ( typeEntry , me , mi , MDocUpdater . HasDroppedNamespace ( mi ) ) ;
2451+ MakeReturnValue ( typeEntry , me , mi , MDocUpdater . HasDroppedNamespace ( mi ) ) ;
24512452 if ( mi is MethodReference )
24522453 {
24532454 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 ) ) ;
24562457 }
24572458 bool fxAlternateTriggered = false ;
2458- MakeParameters ( me , mi , typeEntry , ref fxAlternateTriggered , MDocUpdater . HasDroppedNamespace ( mi ) ) ;
2459+ MakeParameters ( me , mi , typeEntry , ref fxAlternateTriggered , MDocUpdater . HasDroppedNamespace ( mi ) ) ;
24592460
24602461 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 ) ;
24632467
2464- info . Node = WriteElement ( me , "Docs" ) ;
2465- MakeDocNode ( info , typeEntry . Framework . Importers , typeEntry ) ;
2466-
24672468 foreach ( MemberFormatter f in FormatterManager . MemberFormatters )
24682469 {
2469- UpdateSignature ( f , mi , me , typeEntry , implementedMembers ) ;
2470+ UpdateSignature ( f , mi , me , typeEntry , implementedMembers ) ;
24702471 }
24712472
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 ;
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+ }
24742506 }
24752507
24762508 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
29132945 "Metadata" ,
29142946 "MemberSignature" ,
29152947 "MemberType" ,
2948+ "SetMethodName" ,
29162949 "Implements" ,
29172950 "AssemblyInfo" ,
29182951 "Attributes" ,
0 commit comments