@@ -415,7 +415,20 @@ internal static string GetAccessors(string memberName, string backingFieldName,
415
415
}}" , backingFieldName , memberName , ( privateSetter ? "private " : string . Empty ) ) ;
416
416
}
417
417
}
418
- return string . Format ( @"
418
+
419
+ if ( privateSetter )
420
+ {
421
+ return string . Format ( @"
422
+ {{
423
+ get
424
+ {{
425
+ return this.{0};
426
+ }}
427
+ }}" , backingFieldName ) ;
428
+ }
429
+ else
430
+ {
431
+ return string . Format ( @"
419
432
{{
420
433
get
421
434
{{
@@ -426,6 +439,7 @@ internal static string GetAccessors(string memberName, string backingFieldName,
426
439
this.{0} = value;
427
440
}}
428
441
}}" , backingFieldName , ( privateSetter ? "private " : string . Empty ) ) ;
442
+ }
429
443
}
430
444
431
445
// ReSharper disable once FunctionComplexityOverflow
@@ -445,7 +459,7 @@ public void AddMembersTo(CodeTypeDeclaration typeDeclaration, bool withDataBindi
445
459
var typeReference = propertyType . GetReferenceFor ( OwningType . Namespace , IsCollection || isArray ) ;
446
460
var simpleType = propertyType as SimpleModel ;
447
461
448
- var requiresBackingField = withDataBinding || DefaultValue != null ;
462
+ var requiresBackingField = withDataBinding || DefaultValue != null || IsCollection || isArray ;
449
463
var backingField = new CodeMemberField ( typeReference , OwningType . GetUniqueFieldName ( this ) )
450
464
{
451
465
Attributes = MemberAttributes . Private
@@ -635,7 +649,8 @@ public void AddMembersTo(CodeTypeDeclaration typeDeclaration, bool withDataBindi
635
649
constructor . Comments . AddRange ( DocumentationModel . GetComments ( constructorDocs ) . ToArray ( ) ) ;
636
650
typeDeclaration . Members . Add ( constructor ) ;
637
651
}
638
- var listReference = new CodePropertyReferenceExpression ( new CodeThisReferenceExpression ( ) , Name ) ;
652
+ var listReference = requiresBackingField ? ( CodeExpression ) new CodeFieldReferenceExpression ( new CodeThisReferenceExpression ( ) , backingField . Name ) :
653
+ new CodePropertyReferenceExpression ( new CodeThisReferenceExpression ( ) , Name ) ;
639
654
var initTypeReference = propertyType . GetReferenceFor ( OwningType . Namespace , true , true ) ;
640
655
var initExpression = new CodeObjectCreateExpression ( initTypeReference ) ;
641
656
constructor . Statements . Add ( new CodeAssignStatement ( listReference , initExpression ) ) ;
0 commit comments