22using Microsoft . CodeAnalysis . CSharp ;
33using Microsoft . CodeAnalysis . CSharp . Syntax ;
44using Microsoft . CodeAnalysis . Text ;
5+ using System ;
56using System . Collections . Generic ;
67using System . Diagnostics ;
78using System . Linq ;
@@ -294,15 +295,22 @@ static string GetWidestAccessibility(string getter, string setter)
294295 var notifyArg = notify ? "true" : "false" ;
295296 if ( readOnly )
296297 {
298+ string getterModifier = getterValue . ToString ( ) . Equals ( propertyAccessRaw , StringComparison . OrdinalIgnoreCase )
299+ ? ""
300+ : ToPropertyAccessibilityString ( getterValue . ToString ( ) ) ;
301+
297302 source . AppendLine ( $@ "
298303 { propertyAccessibilityStr } { typeName } { propertyName }
299304 {{
300- { getterStr } get {{ return this.GetProperty(ref { fieldName } , { lockerArg } ); }}
305+ { getterModifier } get {{ return this.GetProperty(ref { fieldName } , { lockerArg } ); }}
301306 }}" ) ;
302307 }
303308 else
304309 {
305- string setAccessor ;
310+ string getterModifier = getterValue . ToString ( ) . Equals ( propertyAccessRaw , StringComparison . OrdinalIgnoreCase )
311+ ? ""
312+ : ToPropertyAccessibilityString ( getterValue . ToString ( ) ) ;
313+
306314 if ( alsoNotify . Length > 0 )
307315 {
308316 var notifyCalls = new StringBuilder ( ) ;
@@ -311,27 +319,37 @@ static string GetWidestAccessibility(string getter, string setter)
311319 if ( ! string . IsNullOrEmpty ( prop ) )
312320 notifyCalls . AppendLine ( $ " this.OnPropertyChanged(\" { prop } \" );") ;
313321 }
314- setAccessor = $@ "
315- { setterStr } set
322+
323+ string setterModifier = setterValue . ToString ( ) . Equals ( propertyAccessRaw , StringComparison . OrdinalIgnoreCase )
324+ ? ""
325+ : ToPropertyAccessibilityString ( setterValue . ToString ( ) ) ;
326+
327+ source . AppendLine ( $@ "
328+ { propertyAccessibilityStr } { typeName } { propertyName }
329+ {{
330+ { getterModifier } get {{ return this.GetProperty(ref { fieldName } , { lockerArg } ); }}
331+ { setterModifier } set
316332 {{
317333 if (this.SetProperty(ref { fieldName } , value, { lockerArg } , { notifyArg } ))
318334 {{
319335{ notifyCalls . ToString ( ) . TrimEnd ( ) }
320336 }}
321- }}" ;
337+ }}
338+ }}" ) ;
322339 }
323340 else
324341 {
325- setAccessor = $@ "
326- { setterStr } set {{ this.SetProperty(ref { fieldName } , value, { lockerArg } , { notifyArg } ); }}" ;
327- }
342+ string setterModifier = setterValue . ToString ( ) . Equals ( propertyAccessRaw , StringComparison . OrdinalIgnoreCase )
343+ ? ""
344+ : ToPropertyAccessibilityString ( setterValue . ToString ( ) ) ;
328345
329- source . AppendLine ( $@ "
346+ source . AppendLine ( $@ "
330347 { propertyAccessibilityStr } { typeName } { propertyName }
331348 {{
332- { getterStr } get {{ return this.GetProperty(ref { fieldName } , { lockerArg } ); }}
333- { setAccessor }
349+ { getterModifier } get {{ return this.GetProperty(ref { fieldName } , { lockerArg } ); }}
350+ { setterModifier } set {{ this.SetProperty(ref { fieldName } , value, { lockerArg } , { notifyArg } ); } }
334351 }}" ) ;
352+ }
335353 }
336354 }
337355
@@ -366,19 +384,31 @@ static string GetWidestAccessibility(string getter, string setter)
366384 var lockerArg = threadSafe ? "_Locker" : "null" ;
367385 if ( readOnly )
368386 {
387+ string getterModifier = getterValue . ToString ( ) . Equals ( propertyAccessRaw , StringComparison . OrdinalIgnoreCase )
388+ ? ""
389+ : ToPropertyAccessibilityString ( getterValue . ToString ( ) ) ;
390+
369391 source . AppendLine ( $@ "
370392 { propertyAccessibilityStr } { typeName } { propertyName }
371393 {{
372- { getterStr } get {{ return this.GetProperty(ref { fieldName } , { lockerArg } ); }}
394+ { getterModifier } get {{ return this.GetProperty(ref { fieldName } , { lockerArg } ); }}
373395 }}" ) ;
374396 }
375397 else
376398 {
399+ string getterModifier = getterValue . ToString ( ) . Equals ( propertyAccessRaw , StringComparison . OrdinalIgnoreCase )
400+ ? ""
401+ : ToPropertyAccessibilityString ( getterValue . ToString ( ) ) ;
402+
403+ string setterModifier = setterValue . ToString ( ) . Equals ( propertyAccessRaw , StringComparison . OrdinalIgnoreCase )
404+ ? ""
405+ : ToPropertyAccessibilityString ( setterValue . ToString ( ) ) ;
406+
377407 source . AppendLine ( $@ "
378408 { propertyAccessibilityStr } { typeName } { propertyName }
379409 {{
380- { getterStr } get {{ return this.GetProperty(ref { fieldName } , { lockerArg } ); }}
381- { setterStr } set {{ this.SetProperty(ref { fieldName } , value, { lockerArg } ); }}
410+ { getterModifier } get {{ return this.GetProperty(ref { fieldName } , { lockerArg } ); }}
411+ { setterModifier } set {{ this.SetProperty(ref { fieldName } , value, { lockerArg } ); }}
382412 }}" ) ;
383413 }
384414 }
0 commit comments